好的,我的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:似乎没有加载资源,因为缺乏经验,我现在遇到了很多问题。
答案 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: