每当我在Tomcat上运行我的测试应用程序时,我都可以将其转到我的主页面,但每当我尝试转到我的api / rest路径时,我收到500错误,因为找不到我的AppConfig。我相信这与我的目录设置有关。
我的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"
id="WebApp_ID" version="3.0">
<display-name>FACHybrid</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>java.config.ApplicationConfig</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
在xml中,问题在于param-value标签
这是ApplicationConfig文件
package config;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import service.TestService;
@ApplicationPath("/rest")
public class ApplicationConfig extends Application{
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(TestService.class);
return s;
}
}
我的目录看起来像这样
控制台中的错误
java.lang.ClassNotFoundException: java.config.ApplicationConfig
答案 0 :(得分:0)
我认为问题在于你的web.xml
。 ApplicationConfig
类的完全限定名称是错误的。
将其更改为config.ApplicationConfig
-
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>config.ApplicationConfig</param-value>
</init-param>