2014-01-17 44 views
4

17-53-2014 12:53:31.817 INFO - 註冊com.citronium.fizionomizm.service.server.controllers.Root爲根資源類 17-53-2014 12:53 :31.820信息 - 註冊com.citronium.fizionomizm.service.server.controllers.RecognizePath作爲根資源類 17-53-2014 12:53:31.822 INFO - 啓動Jersey應用程序,版本'Jersey:1.18 11/22/2013 03:05 AM' 17-53-2014 12:53:31.929錯誤 - 提供程序類com.sun.jersey.server.impl.model.parameter.multivalued.JAXBStringReaderProviders $ RootElementProvider無法實例化。處理將繼續,但類不會被利用 java.lang.IllegalArgumentException:參數類型不匹配 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)〜[na:1.7.0_51] at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57)〜[na:1.7.0_51] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)〜[na:1.7.0_51] at java.lang.reflect.Constructor.newInstance (Constructor.java:526)〜[na:1.7.0_51] at com.sun.jersey.core.spi.component.ComponentConstructor。 getInstance(ComponentConstructor.java:210)〜[fizionomizm-service.jar:0.1] at com.sun.jersey.core.spi.component.ComponentConstructor.getInstance(ComponentConstructor.java:180)〜[fizionomizm-service.jar :0.1] at com.sun.jersey.core.spi.component.ProviderFactory。_getComponentProvider(ProviderFactory.java:166)[fizionomizm-service.jar:0.1] at com.sun.jersey.core.spi.component.ProviderFactory.getComponentProvider(ProviderFactory.java:137)[fizionomizm-service.jar:0.1 ] at com.sun.jersey.core.spi.component.ProviderServices.getComponent(ProviderServices.java:283)[fizionomizm-service.jar:0.1] at com.sun.jersey.core.spi.component.ProviderServices。 getProvidersAndServices(ProviderServices.java:176)[fizionomizm-service.jar:0.1] at com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderFactory.init(StringReaderFactory.java:60)[fizionomizm-service。 jar:0.1] at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1341)[fizionomizm-service.jar:0.1] at com.sun.jersey.server.impl.a pplication.WebApplicationImpl.access $ 700(WebApplicationImpl.java:180)[fizionomizm-service.jar:0.1] at com.sun.jersey.server.impl.application.WebApplicationImpl $ 13.f(WebApplicationImpl.java:799)[fizionomizm- service.jar:0.1] at com.sun.jersey.server.impl.application.WebApplicationImpl $ 13.f(WebApplicationImpl.java:795)[fizionomizm-service.jar:0.1] at com.sun.jersey.spi。 inject.Errors.processWithErrors(Errors.java:193)[fizionomizm-service.jar:0.1] at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)[fizionomizm-service。 jar:0.1] at com.sun.jersey.guice.spi.container.servlet.GuiceContainer.initiate(GuiceContainer.java:121)[fizionomizm-service.jar:0.1] at com.sun.jersey.spi.container .servlet.ServletContainer $ InternalWebComponent.initiate(ServletCon tainer.java:321)[fizionomizm-service.jar:0.1] at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)[fizionomizm-service.jar:0.1] at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207)[fizionomizm-service.jar:0.1] at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer .java:376)[fizionomizm-service.jar:0.1] at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:559)[fizionomizm-service.jar:0.1] at javax .servlet.GenericServlet.init(GenericServlet.java:244)[fizionomizm-service.jar:0.1] at com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:119)[fizionomizm-service.jar:0.1 ] ,位於com.google.inject.servlet.ManagedServletPipeline。init(ManagedServletPipeline.java:84)[fizionomizm-service.jar:0.1] at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:104)[fizionomizm-service.jar:0.1] at com。 google.inject.servlet.GuiceFilter.init(GuiceFilter.java:224)[fizionomizm-service.jar:0.1] at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:137)[fizionomizm-service。 jar:0.1] at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:810)[fizionomizm-service.jar:0.1] at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java :288)[fizionomizm-service.jar:0.1] at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:743)[fizionomizm-service.jar:0.1] at org.eclipse.jetty .U在org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:117)[fizionomizm-service。]中提供了以下代碼:fizionomizm-service.jar:0.1] jar:0.1] at org.eclipse.jetty.server.Server.start(Server.java:355)[fizionomizm-service.jar:0.1] at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle .java:99)[fizionomizm-service.jar:0.1] at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60)[fizionomizm-service.jar:0.1] at org.eclipse .jetty.server.Server.doStart(Server.java:324)[fizionomizm-service.jar:0.1] at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)[fizionomizm-service .jar:0.1] at com.citronium.fizion omizm.service.server.restserver.RESTServer.start(RESTServer.java:68)[fizionomizm-service.jar:0.1] at com.citronium.fizionomizm.service.Runner.main(Runner.java:19)[fizionomizm- service.jar:0.1] 17-53-2014 12:53:32.235 INFO - 將com.citronium.fizionomizm.service.server.controllers.Root綁定到範圍爲「Singleton」的GuiceManagedComponentProvider 17-53-2014 12:53 :32.249 INFO - 綁定com.citronium.fizionomizm.service.server.controllers.RecognizePath到範圍爲「Singleton」的GuiceManagedComponentProvider 17-53-2014 12:53:32.365錯誤 - 已檢測到以下錯誤和警告:資源和/或提供者類: SEVERE:缺少構造函數的依賴關係public com.sun.jersey.server.impl.model.parameter.multivalued.JAXBStringReaderProviders $ RootElementProvider(com.sun.jersey.spi.inject.Injectable,javax.ws。 rs.ext.Providers)參數索引0 SEVERE:方法,公共javax.ws.rs.core.Response com.citronium.fizionomizm.service.server.controllers.RecognizePath.upload(java.lang.String,java.lang .String)拋出的java.io.IOException異常,用資源的POST註釋,類com.citronium.fizionomizm.service.server.controllers.RecognizePath,不被識別爲有效的資源方法。 SEVERE:方法,公共javax.ws.rs.core.Response com.citronium.fizionomizm.service.server.controllers.RecognizePath.analyse(java.lang.String,java.lang.String),用PUT的資源註釋,類com.citronium.fizionomizm.service.server.controllers.RecognizePath,不被識別爲有效的資源方法。 SEVERE:方法,公共同步javax.ws.rs.core.Response com.sun.jersey.server.impl.wadl.WadlResource.geExternalGramar(javax.ws.rs.core.UriInfo,java.lang.String),註釋使用資源的類com.sun.jersey.server.impl.wadl.WadlResource,不會將其識別爲有效的資源方法。 SEVERE:方法,公共同步javax.ws.rs.core.Response com.sun.jersey.server.impl.wadl.WadlResource.getWadl(javax.ws.rs.core.Request,javax.ws.rs.core。 UriInfo,javax.ws.rs.ext.Providers)用資源的GET註釋,com.sun.jersey.server.impl.wadl.WadlResource類不被識別爲有效的資源方法。 17-53-2014 12:53:32.375錯誤 - 啓動服務器時出錯。 com.sun.jersey.spi.inject.Errors $ ErrorMessagesException at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170) at com.sun.jersey.spi.inject.Errors。 postprocess(Errors.java:136) at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199) at com.sun.jersey.server.impl.application。WebApplicationImpl.initiate(WebApplicationImpl.java:795) at com.sun.jersey.guice.spi.container.servlet.GuiceContainer.initiate(GuiceContainer.java:121) at com.sun.jersey.spi.container.servlet。 ServletContainer $ InternalWebComponent.initiate(ServletContainer.java:321) at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605) at com.sun.jersey.spi.container.servlet。 WebComponent.init(WebComponent.java:207) at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:376) at com.sun.jersey.spi.container.servlet.ServletContainer。 init(ServletContainer.java:559) at javax.servlet.GenericServlet.init(GenericServlet.java:244) at com.google.inject.servlet.ServletDefinition.init(ServletDefinitio n.java:119) 在com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:84) 在com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:104) 在融爲一體。 google.inject.servlet.GuiceFilter.init(GuiceFilter.java:224) at org.eclipse.jetty.servlet.FilterHolder.initialize(FilterHolder.java:137) at org.eclipse.jetty.servlet.ServletHandler.initialize( ServletHandler.java:810) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:288) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:743) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69) at org.eclipse。 jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:117) at org.eclipse.jetty.server.Server.start(Server.java:355) at org.eclipse.jetty.util.component.ContainerLifeCycle。 doStart(ContainerLifeCycle.java:99) at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60) at org.eclipse.jetty.server.Server.doStart(Server.java:324) at com.citronium.fizionomizm.service.server.restserver.RESTServer.start(RESTServer.java:68) at com。org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69) citronium.fizionomizm.service.Runner.main(Runner.java:19)

從控制檯啓動jar時,此異常會下降。如果從IDE開始,工作良好。

回答

4

我意識到這是舊的,但也許別人會覺得它有用。

在我的情況下,這是由來自不同澤西模塊的一些衝突的服務條目引起的。 META-INF/services/中的文件應該合併,但我的文件被覆蓋。

如果您使用maven shade插件,則可以使用ServicesResourceTransformer輕鬆合併服務條目。

+0

http://stackoverflow.com/questions/1607220/how-can-i-merge-resource-files-in-a-maven-assembly是什麼幫助,當你使用maven-assembly-plugin的關鍵是< containerDescriptorHandlers> \t \t \t \t \t metaInf服務 \t \t