2016-09-30 5 views
1

私は単純なスプリングブートアプリケーションを実行していますが、このアプリケーションのルートへのアクセスに問題があります。 私のアプリはとてもシンプルです。このPOM:私はローカルホスト内のすべての実行権をアプリケーションを実行するときURLでアクセスするスプリングブートアプリケーション

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.1.RELEASE</version> 
    </parent> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.7</java.version> 
    </properties> 
    <dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 
    </dependencies> 

    <build> 
    <finalName>demospringboot</finalName> 
    <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <configuration> 
        <executable>true</executable> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <packaging>jar</packaging> 

これは、メインクラスまあ

@SpringBootApplication 
@ComponentScan(basePackages = "main") 
@EnableAutoConfiguration 
public class ApplicationMain { 
    public static void main(String[] args) { 
     SpringApplication.run(ApplicationMain.class, args); 
    } 
} 

そして、このデC​​ontrollerクラス

@RestController 
public class ControllerMain { 

    @RequestMapping("/springboot/hello") 
    public @ResponseBody String home() { 

     return "Hello World"; 
    } 
} 

で、私はブラウザにhttp://localhost:8080/springboot/helloと入力すると結果が表示されます。 私の問題は、実動サーバー上で生成されたjarファイルを置くと始まります。このサーバは、ApacheサーバとTomcatが統合されたPleskを持つ典型的なVPS(Virtual Private Server)です。 私は春のブートアプリケーションにTomcatが埋め込まれているため、2つのTomcatサーバー間で競合が発生するため、サーバーのTomcatサービスを停止します。私は、アプリケーションのデプロイが、私は、ブラウザでhttp://myserverdomain/springboot/helloのようなものを置くとき、私は404エラーを取得する方法を示してトレースを参照してください

java -jar demospringboot.jar 

:私は、サーバーにデjarファイルをアップロードして、それを実行した後 。 私のサーバーは、私はこの設定を追加すると、このために、私はバーチャルホスト

<IfModule mod_jk.c> 
     JkMount /springboot ajp13 
     JkMount /springboot/* ajp13 
</IfModule> 

へのhttpd.confにこの設定を追加し、同時に静的ファイルとJavaアプリケーションを提供するApacheサーバとTomcatサーバーを持つように設置mod_jkをしていますエラー404はエラー503 Service Unavailableに渡されます。 私が持っているようにVPSに埋め込まれたtomcatを持つスプリングブートアプリケーションのjarをデプロイするための手順は何ですか?

答えて

2

最後に私は私の問題の解決策を見つけました。私はこのクラスに

@Controller 
public class ServletConfig { 
    @Bean 
    public EmbeddedServletContainerFactory servletContainer() { 
     TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); 

     Connector ajpConnector = new Connector("AJP/1.3"); 
     ajpConnector.setProtocol("AJP/1.3"); 
     ajpConnector.setPort(9090); 
     ajpConnector.setSecure(false); 
     ajpConnector.setAllowTrace(false); 
     ajpConnector.setScheme("http"); 
     tomcat.addAdditionalTomcatConnectors(ajpConnector); 

     return tomcat; 
    } 
} 

を作成した後、私は自分のアプリケーションをコンパイルしていると私は私のサーバーにjarファイルをアップロードしている

server.port=8082 
server.use-forward-headers=true 
server.contextPath=/mainstay 

:まず、私は私のapplication.propertiesファイルにこれを追加しました。これで、私は私のサーバーの労働者のファイルを編集していると私は、この追加しました:

worker.list=ajp13,spring 
worker.ajp13.port=9008 
worker.ajp13.host=localhost 
worker.ajp13.type=ajp13 

worker.spring.port=9090 
worker.spring.host=localhost 
worker.spring.type=ajp13 

そして私は、私はhttpdサービスのIを再起動する必要があり、この

<IfModule mod_jk.c> 
    JkMount /mainstay spring 
    JkMount /mainstay/* spring 
</IfModule> 

とhttpd.confファイルを編集しています私のアプリケーションにアクセスできます

関連する問題