Jersey Restful部署到Tomcat注意事項


新的Jersey版本,支持Servlet 3.x,與Servlet 2.x不一樣

實現自定義的Application,使用@ApplicationPath("/")標注

@ApplicationPath("/")
public class MyApplication extends ResourceConfig{
    
    public SportApplication() {
        super(A.class,B.class,C.class); // 自由添加,控制,也可以用packages
    }
}

使用web.xml,新版本可以不用web.xml了,但是有局限性,推薦使用web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
      
     <!-- Servlet declaration can be omitted in which case
         it would be automatically added by Jersey -->
    <servlet>
        <servlet-name>package.MyApplication</servlet-name>
    </servlet>
 
    <!-- Servlet mapping can be omitted in case the Application subclass
         is annotated with @ApplicationPath annotation; in such case
         the mapping would be automatically added by Jersey -->
    <servlet-mapping>
        <servlet-name>package.MyApplication</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

導出war包至tomcat的webapps目錄下,直接網站訪問即可

導出war包要求項目必須是web項目,如果不是web項目,可以右鍵項目 -> Configure -> Convert to faceted.. 勾選Dynamic Web Project即可

如果項目沒有web.xml文件,在項目轉換成web項目之后,可以右鍵項目 -> Java EE Tools -> Generate Depolyment Descriptor Stub

導出war包之前,確認lib庫要相應的一同導出,項目屬性 -> Deployment Assembly -> Add -> Java Build Path -> 勾選maven Jars或者其他依賴庫

導出war包,右鍵項目 -> Export to War

這樣的配置在部署之后,就可以通過鏈接 http://xxx.com/mywar/rest/...訪問resource了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM