REST Tomcat根URL web.xml @Path

时间:2016-06-27 08:11:44

标签: java hibernate rest maven tomcat

好的,我的REST应用程序有问题,它一直运行良好,直到我开始更改应用程序的URL /上下文..

我可以在https://url/RESTservice/rest/restmethod下访问我的服务,但我想将其更改为https://url/rest/restmethod,我做了一些更改,但还原这些似乎无法解决问题。

从ServiceMain.java开始...

@Path("/")
public class ServiceMain extends Application

关注web.xml文件......

<servlet>
    <servlet-name>bob-rest-service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>de.bob</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.moxy.json.MoxyFeature;org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
    </init-param>
</servlet>

<servlet-mapping>
    <servlet-name>bob-rest-service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

maven pom.xml ...

<build>
    <finalName>RESTservice</finalName>
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

最后一件事是Eclipse上的Tomcat Modules View,它指向&#34; / RESTservice&#34;并在项目 - &gt;属性 - &gt; Web项目设置 - &gt;上下文根:&#34; REST服务&#34;。

这是我的实际设置,现在问题在于,当我调用我的休息方法时,我得到HTTP 404,他们在星期五工作正常,直到我开始改变路径。

错误日志:

Jun 27, 2016 9:57:25 AM org.glassfish.jersey.filter.LoggingFilter log
INFORMATION: 14 * Server has received a request on thread http-bio-443-exec-8
14 > POST https://bob.de/RESTservice/rest/login
14 > accept-encoding: gzip,deflate
14 > connection: Keep-Alive
14 > content-length: 127
14 > content-type: application/x-www-form-urlencoded
14 > host: bob.de
14 > user-agent: Apache-HttpClient/4.5.2 (Java/1.8.0_91)

Jun 27, 2016 9:57:25 AM org.glassfish.jersey.filter.LoggingFilter log
INFORMATION: 14 * Server responded with a response on thread http-bio-443-exec-8
14 < 404
编辑:我想知道的是,当我有类似的问题,我有ClassNotFound异常和Hibernate查询未显示,一旦它工作,显示了休眠的东西。我可能遇到Hibernate的问题吗?

EDIT2:似乎没有加载资源,因为缺乏经验,我现在遇到了很多问题。

2 个答案:

答案 0 :(得分:0)

我们用于申请的常规网址是https://Ip:Port/ApplicationName。 在你的情况下,你使用下面urlwhich工作正常 https://url/RESTservice/rest/restmethod。 在此Url中,RESTservice是应用程序名称。 现在您要更改为在Url中缺少应用程序名称的其他Url。 在Url中添加应用程序名称,以便它可以正常工作

答案 1 :(得分:0)

为测试目的创建了一个新的工作区,它立即工作,WTH eclipse!

编辑:我现在也获得了没有APP名称的URL,因此只需在服务器浏览器下的tomcat实例上双击 - &gt;点击模块 - &gt;选择你的应用程序 - &gt;编辑 - &gt;删除路径中的URL: