2015-02-06 73 views
0

我正在使用REST ESay API并在启动jetty服务器时收到以下错误,当我在REST服务代码中添加该方法时。目的是用自定义字符集来覆盖内容类型。请帮我解决这个issue.The方法是:无法找到拦截器的公共构造函数ContentTypeSetterPreProcessorInterceptor

@Provider 
@ServerInterceptor 
public class ContentTypeSetterPreProcessorInterceptor implements 
PreProcessInterceptor { 
public ServerResponse preProcess(HttpRequest request, 
ResourceMethod method) throws Failure, WebApplicationException 
    { 
     request.setAttribute(InputPart.DEFAULT_CONTENT_TYPE_PROPERTY, 
     "*/*; charset=UTF-8"); return null; 
    } 
} 

这是堆栈跟踪:

03:11:08.232(02/06) INFO org.jboss.resteasy.plugins.server.servlet.ConfigurationBootstrap : Adding scanned @Provider: com.lexisnexis.csa.fwu.rest.service.FWUploadService$ContentTypeSetterPreProcessorInterceptor 
    03:11:08.233(02/06) INFO org.jboss.resteasy.plugins.server.servlet.ConfigurationBootstrap : Adding scanned resource: com.lexisnexis.csa.fwu.rest.service.FWUploadService 
    2015-02-06 03:11:08.796:WARN::Failed startup of context o.e.j.w.WebAppContext{/,file:/C:/Users/SHANMUK3/workspace/LN_CSA_FWU_SRVC_COMP/target/LN_CSA_FWU_SRVC_COMP/},C:\Users\SHANMUK3\workspace\LN_CSA_FWU_SRVC_COMP\target\LN_CSA_FWU_SRVC_COMP.war 
    java.lang.RuntimeException: Unable to find a public constructor for interceptor class com.lexisnexis.csa.fwu.rest.service.FWUploadService$ContentTypeSetterPreProcessorInterceptor 
     at org.jboss.resteasy.core.interception.InterceptorRegistry$PerMethodInterceptorFactory.<init>(InterceptorRegistry.java:109) 
     at org.jboss.resteasy.core.interception.InterceptorRegistry.register(InterceptorRegistry.java:234) 
     at org.jboss.resteasy.spi.ResteasyProviderFactory.registerProvider(ResteasyProviderFactory.java:792) 
     at org.jboss.resteasy.spi.ResteasyProviderFactory.registerProvider(ResteasyProviderFactory.java:743) 
     at org.jboss.resteasy.spi.ResteasyDeployment.registerProvider(ResteasyDeployment.java:505) 
     at org.jboss.resteasy.spi.ResteasyDeployment.registration(ResteasyDeployment.java:305) 
     at org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:225) 
     at org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap.contextInitialized(ResteasyBootstrap.java:28) 
     at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:640) 
     at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:229) 
     at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1208) 
     at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:586) 
     at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:449) 
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 
     at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224) 
     at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:164) 
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 
     at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224) 
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 
     at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:89) 
     at org.eclipse.jetty.server.Server.doStart(Server.java:258) 
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:58) 
     at com.lxnx.ols.rsf.http.server.HttpServer.start(HttpServer.java:205) 
     at com.lxnx.ols.rsf.http.server.AbstractRestServer.start(AbstractRestServer.java:250) 
     at com.lxnx.ols.rsf.http.server.AbstractRestServer.run(AbstractRestServer.java:193) 
     at com.lexisnexis.fwu.service.DrsFWUServer.main(DrsFWUServer.java:28) 
    2015-02-06 03:11:08.875:INFO::Started [email protected]:8088 STARTING 
    03:11:08.891(02/06) INFO RSF : [main] ******* DrsFWU running on RETDAYV-7610098:8088 ******* 

我的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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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>LN_CSA_FWU_SRVC_COMP</display-name> 
<servlet> 
     <servlet-name>resteasy-servlet</servlet-name> 
     <servlet-class> 
      org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
     </servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>resteasy-servlet</servlet-name> 
     <url-pattern>/*</url-pattern> 
    </servlet-mapping> 

    <context-param> 
     <param-name>resteasy.scan</param-name> 
     <param-value>true</param-value> 
    </context-param> 

    <listener> 
     <listener-class> 
     org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap 
     </listener-class> 
    </listener> 
</web-app> 

的pom.xml:

<dependencies> 
      <dependency> 
       <groupId>commons-httpclient</groupId> 
       <artifactId>commons-httpclient</artifactId> 
       <version>3.1</version> 
      </dependency> 
      <dependency> 
       <groupId>commons-fileupload</groupId> 
       <artifactId>commons-fileupload</artifactId> 
       <version>1.2.1</version> 
      </dependency> 
      <dependency> 
       <groupId>commons-io</groupId> 
       <artifactId>commons-io</artifactId> 
       <version>2.3</version> 
      </dependency> 
      <dependency> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
       <version>1.1.1</version> 
      </dependency> 

      <dependency> 
       <groupId>org.jboss.resteasy</groupId> 
       <artifactId>resteasy-jaxrs</artifactId> 
       <version>2.3.1.GA</version> 
      </dependency> 
      <dependency> 
       <groupId>net.sf.scannotation</groupId> 
       <artifactId>scannotation</artifactId> 
       <version>1.0.2</version> 
      </dependency> 
      <!-- JAXB provider --> 
      <dependency> 
       <groupId>org.jboss.resteasy</groupId> 
       <artifactId>resteasy-jaxb-provider</artifactId> 
       <version>2.3.1.GA</version> 
      </dependency> 
      <!-- Multipart support --> 
      <dependency> 
       <groupId>org.jboss.resteasy</groupId> 
       <artifactId>resteasy-multipart-provider</artifactId> 
       <version>2.3.1.GA</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.httpcomponents</groupId> 
       <artifactId>httpmime</artifactId> 
       <version>4.2.5</version> 
      </dependency> 

      <dependency> 
       <groupId>org.apache.httpcomponents</groupId> 
       <artifactId>httpcore</artifactId> 
       <version>4.2.4</version> 
      </dependency> 

      <dependency> 
       <groupId>org.apache.httpcomponents</groupId> 
       <artifactId>fluent-hc</artifactId> 
       <version>4.2.5</version> 
      </dependency> 
+0

您是否显示“ContentTypeSetterPreProcessorInterceptor”的完整代码?你可以添加你遇到的堆栈跟踪问题吗? – 2015-02-06 08:47:01

+0

对不起..我已经更新了.. – Kaliappan 2015-02-06 09:01:46

回答

2

这个:

com.lexisnexis.csa.fwu.rest.service.FWUploadService$ContentTypeSetterPreProcessorInterceptor 

表示ContentTypeSetterPreProcessorInterceptor是内部类。将内部类定义为static或使其成为顶级类。

非静态内部类没有空的构造函数。

相关问题