簡體   English   中英

如何設置Jersey + Tomcat RESTful Java Web應用程序?

[英]How to setup a Jersey + Tomcat RESTful Java web app?

對不起,我缺乏天真的Java Web應用程序,但是我似乎無法理解設置Java應用程序的最佳方法。

問題:

目前,我一直在使用Jersey和Tomcat在本地構建RESTful API應用程序。 我通過Intellij設置了Tomcat,我所有的端點方法都像這樣。 我的應用程序中任何地方都沒有main()方法,並且一切正常。

@GET @Produces(MediaType.TEXT_PLAIN)
public Response getMessage() {

    String message = "Please specify an endpoint.";

    return Response.status(200).entity(message).build();
}

但是,我正在嘗試將應用程序部署到Heroku。 Heroku可以構建它,但是當我打開URL時,出現“ Application Errors並且在檢查日志后,我得到了明顯的提示:

2015-04-07T15:58:31.407658+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/gympeak/schools" host=gympeak-api.herokuapp.com request_id=02018a23-900d-4365-84a5-a54b82c4788a fwd="152.17.156.116" dyno= connect= service= status=503 bytes=

基本上告訴我沒有任何Web應用程序在運行。 我認為部分原因是因為我的應用程序可以在本地啟動Tomcat(因為它已使用Intellij配置),但不能在Heroku上啟動。 我嘗試編輯Procfile來執行以下操作:

web: java -cp target/classes:target/dependency/* com._1834Software.endpoints.Index

但是同樣,問題在於,由於沒有main()方法,它無法啟動任何東西。

問題:

如何使用沒有 main()方法的Tomcat部署Java Web應用程序? 這有可能嗎? 它似乎可以在本地正常工作,但在野外卻不能。

我見過人們使用Tomcat進行類似的操作,但是當我能夠在本地啟動Tomcat時,這樣做就沒有意義。 http://blog.sortedset.com/embedded-tomcat-jersey/

另外,如果有幫助,這是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     version="3.1">

<servlet>
    <servlet-name>GymPeak API</servlet-name>

    <servlet-class>
        com.sun.jersey.spi.container.servlet.ServletContainer
    </servlet-class>

    <load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>
    <servlet-name>GymPeak API</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

您可以啟動Tomcat實例,並使用基於Jersey的應用程序部署戰爭。 這樣,您不需要主要方法,只需一個標准的servlet應用程序。

您可以檢查該項目 ,這是一個示例。 它使用gradle建立戰爭。

我認為您可能想使用webapp-runner來啟動WAR文件。 這是有關設置的文章: https : //devcenter.heroku.com/articles/java-webapp-runner

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM