위로 톰캣 소스 코드를 실행 Tomcat02--

1. 준비

소스 패키지 바람둥이 1. 다운로드

빈 프로젝트를 생성합니다

2. 절차

2.1 프로젝트에 소스 코드 추출을 다운로드합니다

도표 :

프로젝트의 2.2 건설

홈 폴더 만들기 2.2.1

압축을 푼 디렉토리로 홈라는 디렉토리, 다음의 conf를 만들고 같이 홈 디렉토리에 webapps 디렉토리 :

2.2.2 만들기의 pom.xml

그림과 같이 압축을 푼 디렉토리에 pom.xml 파일 및 바람둥이 종속성의 도입을 만듭니다

pom.xml 파일

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>apache-tomcat-8.5.50-src</artifactId>
    <name>Tomcat8.5</name>
    <version>8.5</version>
 
    <build>
        <finalName>Tomcat8.5</finalName>
        <sourceDirectory>java</sourceDirectory>
        <testSourceDirectory>test</testSourceDirectory>
        <resources>
            <resource>
                <directory>java</directory>
            </resource>
        </resources>
        <testResources>
           <testResource>
                <directory>test</directory>
           </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
 
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.7.0</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>javax.xml</groupId>
            <artifactId>jaxrpc</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jdt.core.compiler</groupId>
            <artifactId>ecj</artifactId>
            <version>4.5.1</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.soap</groupId>
            <artifactId>javax.xml.soap-api</artifactId>
            <version>1.4.0</version>
        </dependency>

    </dependencies>
</project>

3. 프로젝트 가져 오기

파일 - 새 - 기존 소스 모듈, 如图 :

같이 받는다는 선택, 가져 오기를 선택합니다 :

같이 마무리를 클릭 한 다음 파일을 선택합니다 :

참고 : IDE는 메이븐 구성되지 않은 경우, 구성 받는다는

구성 정보 아이디어를 시작하십시오

부트 스트랩 클래스를 찾기 위해 자바 디렉토리에서와 같이

도시 된 바와 같이 그것은 메인 방법에 따라 알 수있다 :

그래서, 우리는 클래스를 구성해야합니다.

4.1 절차

4.1.1 열기 구성

그림과 같이 구성 추가를 클릭하십시오 :

그림과 같이 화살표를 클릭합니다 :

3. 그림과 같이 응용 프로그램을 선택, 더하기 기호를 클릭합니다 :

4. 응용 프로그램, 구성 인터페이스를 얻을 같이 :

4.1.2 구성 mainClass

     구성의 주요 클래스는, 같은 마우스 오른쪽 버튼으로 클릭, 선택 시작 클래스를 타원 :

4.1.3 JVM 구성 매개 변수 (VM 옵션)

-Dcatalina.home=D:/ideaWorkspace/tomcat/apache-tomcat-8.5.50-src/home
-Dcatalina.base=D:/ideaWorkspace/tomcat/apache-tomcat-8.5.50-src/home
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=D:/ideaWorkspace/tomcat/apache-tomcat-8.5.50-src/home/conf/logging.properties

적용, 확인을 클릭, 구성이 완료됩니다.

5. Tomcat을 시작 프로젝트

그림과 같이 직접 실행

컴파일 할 때 같이 할 때, 다음과 같은 오류를보고했습니다 : 

성공적인 시작을 실행, 백업 및 파일을 삭제

그런 다음 브라우저에 URL을 입력 HTTP : // localhost를 : 8080 / , 500 오류를보고, 같이 :

产生错误的原因是,我们直接启动mainClass的时候,没有加载JasperInitializer,从而无法编译JSP。解决办法是在tomcat的源码ContextConfig中的ConfigureStart函数中手动将JSP解释器初始化。 

在  org.apache.catalina.startup下的ContextConfig类中的configureStart方法的webConfig();下面,加上如下一段代码

context.addServletContainerInitializer(new JasperInitializer(),null);

然后重启,在访问,发现可以了

 

发布了128 篇原创文章 · 获赞 6 · 访问量 3224

추천

출처blog.csdn.net/weixin_43318134/article/details/103899804