Wildfly Server,Maven,RestEasy(java.lang.ClassNotFoundException:org.jboss.resteasy.core.ResourceMethod)

时间:2016-07-13 14:02:39

标签: java maven resteasy wildfly-10

我将项目从JBOSS迁移到Wildfly Server。我在standalone.xml做了一些更改,一切正常,但是当我从Postman发送JSON请求时,我得到以下异常:

ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /service/api/authenticate: java.lang.NoClassDefFoundError: org/jboss/resteasy/core/ResourceMethod
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethods(Class.java:1975)
    at org.jboss.resteasy.core.PropertyInjectorImpl.populateMap(PropertyInjectorImpl.java:73)
    at org.jboss.resteasy.core.PropertyInjectorImpl.<init>(PropertyInjectorImpl.java:54)
    at org.jboss.resteasy.core.InjectorFactoryImpl.createPropertyInjector(InjectorFactoryImpl.java:65)
    at org.jboss.resteasy.cdi.CdiInjectorFactory.createPropertyInjector(CdiInjectorFactory.java:113)
    at org.jboss.resteasy.spi.ResteasyProviderFactory.injectedInstance(ResteasyProviderFactory.java:2237)
    at org.jboss.resteasy.core.interception.JaxrsInterceptorRegistry$AbstractInterceptorFactory.createInterceptor(JaxrsInterceptorRegistry.java:170)
    at org.jboss.resteasy.core.interception.JaxrsInterceptorRegistry$LegacyPerMethodInterceptorFactory.getInterceptor(JaxrsInterceptorRegistry.java:329)
    at org.jboss.resteasy.core.interception.JaxrsInterceptorRegistry$AbstractLegacyInterceptorFactory.getLegacyMatch(JaxrsInterceptorRegistry.java:269)
    at org.jboss.resteasy.core.interception.ContainerRequestFilterRegistry$1.postMatch(ContainerRequestFilterRegistry.java:67)
    at org.jboss.resteasy.core.interception.JaxrsInterceptorRegistry.postMatch(JaxrsInterceptorRegistry.java:405)
    at org.jboss.resteasy.core.interception.ContainerRequestFilterRegistry.postMatch(ContainerRequestFilterRegistry.java:57)
    at org.jboss.resteasy.core.ResourceMethodInvoker.<init>(ResourceMethodInvoker.java:105)
    at org.jboss.resteasy.core.ResourceMethodRegistry.processMethod(ResourceMethodRegistry.java:281)
    at org.jboss.resteasy.core.ResourceMethodRegistry.register(ResourceMethodRegistry.java:252)
    at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:222)
    at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:194)
    at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:180)
    at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:157)
    at org.jboss.resteasy.core.ResourceMethodRegistry.addPerRequestResource(ResourceMethodRegistry.java:76)
    at org.jboss.resteasy.spi.ResteasyDeployment.registration(ResteasyDeployment.java:404)
    at org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:245)
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init(ServletContainerDispatcher.java:113)
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init(HttpServletDispatcher.java:36)
    at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117)
    at org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:78)
    at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103)
    at io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:231)
    at io.undertow.servlet.core.ManagedServlet.getServlet(ManagedServlet.java:170)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:84)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
    at co.gbt.chila.service.filters.CORSFilter.doFilter(CORSFilter.java:83)
    at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
    at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
    at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
    at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
    at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
    at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
    at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
    at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.jboss.resteasy.core.ResourceMethod from [Module "deployment.co.gbt.ear-0.1-SNAPSHOT.ear.co.gbt.service-0.1-SNAPSHOT.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
    ... 63 more

在我的pom.xml我有版本:

        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-multipart-provider</artifactId>
            <version>2.3.7.Final</version>
            <scope>provided</scope>
        </dependency>

在目录(wildfly-10.0.0.Final/modules/system/layers/base/org/jboss/resteasy/resteasy-multipart-provider/main)的module.xml中,我有:

<module xmlns="urn:jboss:module:1.3" name="org.jboss.resteasy.resteasy-multipart-provider">

     <resources>
        <resource-root path="resteasy-multipart-provider-2.3.7.Final.jar"/>
    <resource-root path="resteasy-multipart-provider-2.3.2.Final-jandex.jar"/>
     </resources>

     <dependencies>
        <module name="javax.xml.bind.api"/>
        <module name="javax.api"/>
        <module name="javax.enterprise.api"/>
        <module name="javax.mail.api"/>
        <module name="javax.servlet.api"/>
        <module name="javax.ws.rs.api"/>
        <module name="org.apache.james.mime4j"/>
        <module name="org.jboss.resteasy.resteasy-jaxb-provider"/>
        <module name="org.jboss.resteasy.resteasy-jaxrs"/>
        <module name="org.jboss.logging"/>
    </dependencies>
</module>

2 个答案:

答案 0 :(得分:1)

转到JBoss / Wildfly目录搜索 select * from ( SELECT rhm_job_seqs.repair_ref AS "Repair Reference", rhm_repairs.tenant_name AS "Tenant Name", rhm_repairs.tenant_address1 AS "Tenant Address1", rhm_repairs.tenant_address2 AS "Tenant Address2", rhm_repairs.tenant_postcode AS "Tenant PostCode", rhm_job_seqs.job_seq AS "Job Sequence", rhm_trades.trade_code AS "Trade Code", rhm_trades.trade_desc AS "Trade", row_number() over (partition by rhm_job_seqs.repair_ref order by rhm_job_seqs.repair_ref, rhm_job_seqs.job_seq) r FROM ( RHM_REPAIRS INNER JOIN RHM_JOB_SEQS ON RHM_REPAIRS.REPAIR_REF = RHM_JOB_SEQS.REPAIR_REF) INNER JOIN RHM_OPERATORS ON RHM_JOB_SEQS.OPERATOR_ID1 = RHM_OPERATORS.OPERATOR_ID INNER JOIN rhm_repair_type ON rhm_repairs.repair_type = rhm_repair_type.repair_type INNER JOIN rhm_trades ON rhm_job_seqs.trade_code = rhm_trades.trade_code INNER JOIN rhm_subareas ON rhm_repairs.subarea_no = rhm_subareas.subarea_no INNER JOIN rhm_yhn_areas ON rhm_subareas.yhn_area_no = rhm_yhn_areas.area_no WHERE NOT (RHM_REPAIRS.TENANT_ADDRESS1 LIKE '9999Z' OR RHM_REPAIRS.TENANT_ADDRESS1 LIKE '9999z%' OR RHM_REPAIRS.TENANT_ADDRESS1 LIKE 'block' OR RHM_REPAIRS.TENANT_ADDRESS1 LIKE 'Block' OR RHM_REPAIRS.TENANT_ADDRESS1 LIKE 'Block%' OR RHM_REPAIRS.TENANT_ADDRESS1 LIKE 'BLOCK') AND NOT (RHM_REPAIRS.JOB_PRIORITY LIKE 'I' OR RHM_REPAIRS.JOB_PRIORITY LIKE 'V') AND (RHM_REPAIRS.REPAIR_TYPE LIKE '2' OR RHM_REPAIRS.REPAIR_TYPE LIKE 'G' OR RHM_REPAIRS.REPAIR_TYPE LIKE 'S' OR RHM_REPAIRS.REPAIR_TYPE LIKE 'X') AND RHM_REPAIRS.TENANT_NAME <> 'VOID' AND RHM_REPAIRS.TENANT_NAME <> 'Void' AND RHM_REPAIRS.TENANT_NAME IS NOT NULL AND RHM_JOB_SEQS.JOB_SEQ_STATUS <> 'X' AND rhm_repairs.repair_completed BETWEEN SYSDATE-20 AND SYSDATE AND RHM_REPAIRS.SUBAREA_NO <> '99' AND rhm_job_seqs.repair_ref IN ('57342819','57257795') AND rhm_job_seqs.job_seq = '1' ) where r = 1 ORDER BY "Repair Reference", "Job Sequence" ,您将获得JBoss正在使用的resteasy库版本,在pom.xml中添加该版本

resteasy-jaxrs*

enter image description here

答案 1 :(得分:0)

我刚刚解决了这个问题。我将resteasy的版本更改为<version>3.0.14.Final</version>