我收到异常 com.sai.peps.ejb.frequentexceeding.FrequentExceedingBean 无法转换为无法转换为 javax.ws.rs.core.Application
我正在使用 EJB 3.0 和 jboss 5.1 & Resteasy
请给我建议,我的错误在哪里。
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.sai.peps.ejb.frequentexceeding.MyRestApplication</param-value>
</context-param>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rest/</param-value>
</context-param>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.sai.peps.ejb.frequentexceeding.MyRestApplication</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
编辑:
package com.sai.peps.ejb.frequentexceeding;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest")
public class MyRestApplication extends Application {
private Set<Object> resourceObjects = new HashSet<Object>();
private Set<Class<?>> resourceClasses = new HashSet<Class<?>>();
public MyRestApplication() {
resourceClasses.add(FrequentExceedingBean.class);
}
@Override
public Set<Class<?>> getClasses() {
return resourceClasses;
}
@Override
public Set<Object> getSingletons() {
return resourceObjects;
}
}
我已经添加了这段代码..仍然不起作用
最佳答案
如果您的类com.sai.peps.ejb.frequentexceeding.FrequentExceedingBean
应该是配置的Aplication类,则它必须扩展javax.ws.rs.core.Application
因为 servlet 容器将实例化此类的对象,然后将 ist 转换为 javax.ws.rs.core.Application
以便能够调用它的 getClasses()
和 getSingletons()
方法。
更新
唉,JBoss 5.1 还没有 Servlet 3.0,所以如果没有 web.xml 就无法配置它。
请检查已接受的答案of this question获取 web.xml 文件中所需的条目。该配置与您的配置在类名的位置方面有所不同。我自己已经有一段时间没有使用web.xml配置了,所以我对此不太坚定。
关于java - 无法在 Resteasy 和 EJB 3.0 中转换为 javax.ws.rs.core.Application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43626418/