2017-09-29 14 views
0

每当我在Tomcat上运行我的测试应用程序时,我可以将其设置到我的主页面,但每当我尝试去我的api /休息路径时,我收到一个500错误,因为找不到我的AppConfig。我相信这与我的目录设置有关。Jersey web.xml应用程序问题

我的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中的问题在于帕拉姆值标记

这里是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; 
    } 

} 

,我的目录是这样的

enter image description here在控制台

java.lang.ClassNotFoundException: java.config.ApplicationConfig 
+0

'java'不是包名称的一部分。它只是一个你所有的Java文件所在的目录。 –

回答

0

错误,我认为问题出在你的web.xmlApplicationConfig类的完全限定名称是错误的。

将其更改为config.ApplicationConfig -

<init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>config.ApplicationConfig</param-value> 
    </init-param>