程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在TomEE +上使用JAX-RS时,“无资源方法”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在TomEE +上使用JAX-RS时,“无资源方法”?

开发过程中遇到在TomEE +上使用JAX-RS时,“无资源方法”的问题如何解决?下面主要结合日常开发的经验,给出你关于在TomEE +上使用JAX-RS时,“无资源方法”的解决方法建议,希望对你解决在TomEE +上使用JAX-RS时,“无资源方法”有所启发或帮助;

看来您的资源方法不在public范围内。尝试这个:

import javax.ws.rs.*;
import javax.ws.rs.core.Response;
@Path("/test")
public class Baseresource {
  @GET @Produces("text/plain") @Path("test") public Response HelloWorld() {
    return Response.ok("Hello world","plain/text").build();
  }
  @GET @Produces("text/plain") public String HelloWorld2() {
    return "Hello world without path!";
  }
}

解决方法

使用库存的TomEE +,我无法获得简单的JAX-RS资源。我经常收到以下错误:

Jun 30,2012 5:09:59 PM org.apache.cxf.jaxrS.Utils.resourceUtils checkMethodDispatcher
WARNING: No resource methods have been found for resource class com.tensorwrench.test.baseresource
Jun 30,2012 5:09:59 PM org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean checkresources 
SEVERE: No resource classes found
Jun 30,2012 5:09:59 PM org.apache.catalina.startup.HostConfig deployWAR
SEVERE: Error deploying web application archive D:\workspace\api\src\main\catalina_base\webapps\testapi-1.0.war
org.apache.cxf.service.factory.serviceConstructionException
                at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:194)
                at org.apache.openejb.server.cxf.rs.CxfRshttpListener.deploy(CxfRshttpListener.java:126)
                at org.apache.openejb.server.cxf.rs.CxfRshttpListener.deployPojo(CxfRshttpListener.java:97)
                at org.apache.openejb.server.rest.RESTservice.deployPojo(RESTservice.java:270)
                at org.apache.openejb.server.rest.RESTservice.afterApplicationCreated(RESTservice.java:173)
                at org.apache.tomee.webservices.TomeeJaxRsservice.afterApplicationCreated(TomeeJaxRsservice.java:55)
                at org.apache.tomee.catalina.WebDeploymentListeners.afterApplicationCreated(WebDeploymentListeners.java:38)
                at org.apache.tomee.catalina.tomcatWebAppBuilder.afterStart(tomcatWebAppBuilder.java:818)
                at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:103)
                at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
                at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
                at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:401)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:168)
                at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
                at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
                at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
                at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:962)
                at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1603)
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
                at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
                at java.util.concurrent.FutureTask.run(FutureTask.java:138)
                at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
                at java.lang.Thread.run(Thread.java:662)
Caused by: javax.ws.rs.WebApplicationException
                at org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.checkresources(AbstractJAXRSFactoryBean.java:312)
                at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:144)
                ... 23 more

资源类:包com.tensorwrench.test;

import javax.ws.rs.*;
import javax.ws.rs.core.Response;
@Path("/test")
public class Baseresource {
  @GET @Produces("text/plain") @Path("test") Response HelloWorld() {
    return Response.ok("Hello world","plain/text").build();
  }
  @GET @Produces("text/plain") String HelloWorld2() {
    return "Hello world without path!";
  }
}

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="api" version="3.0" 
     xmlns="http://java.sun.com/xml/ns/j2ee" 
     xmlns:xsi="http://www.w3.org/2001/XMLscheR_96_11845@a-instance" 
     xsi:scheR_96_11845@aLOCATIOn="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd">
<display-name>service</display-name>

build.gradle:

apply plugin: 'java'
apply plugin: 'war'

repositories { mavenCentral() }

dependencies {
    providedCompile 'org.apache.openejb:javaee-api:6.0-4'
}

version = '1.0'
jar {
        manifest {
                attributes 'title': 'services','Version': version
        }
}

</web-app>

我尝试了多种排列方式,添加了beans.xml,删除了注释,更改了注释的顺序,并对Java EE类使用了不同的编译依赖项。我始终收到此错误。

大佬总结

以上是大佬教程为你收集整理的在TomEE +上使用JAX-RS时,“无资源方法”全部内容,希望文章能够帮你解决在TomEE +上使用JAX-RS时,“无资源方法”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。