【发布时间】:2026-01-12 14:45:02
【问题描述】:
我正在使用 RESTeasy 在 JBoss 6 Final 上开发一个 RESTful Web 服务。 我有一个外部 EJB,我想在 Web 服务上注入 EJB。
这是EJB的代码
BeanLocalInterface.java
@Local
public interface BeanLocalInterface {
public String sayHello();
}
Bean.java
@Stateless
@LocalBinding(jndiBinding = "BeanLocal")
public class Bean implements BeanLocalInterface {
@Override
public String sayHello() {
return "Hello!";
}
}
在另一个项目中我有一个 WS:
@Path("/ws")
public class HelloWorldResource {
@EJB(mappedName="BeanLocal")
private BeanLocalInterface bean;
@GET
@Path("/hello")
@Produces(MediaType.TEXT_PLAIN)
public String sayHello() {
return bean.sayHello();
}
}
MyRESTApplication.java
public class MyRESTApplication extends Application {
private Set<Object> singletons = new HashSet<Object>();
private Set<Class<?>> empty = new HashSet<Class<?>>();
public MyRESTApplication(){
singletons.add(new HelloWorldResource());
}
@Override
public Set<Class<?>> getClasses() {
return empty;
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
bean 始终为空!
我已经尝试过这个解决方案:
- 我已将 @Stateless 放在 HelloWorldResources 上
- 我已经在 WEB-INF 中创建 beans.xml
-
我已更改 MyRESTApplication 与
@ApplicationPath("wsapp") 公共类 MyRESTApplication 扩展应用程序 { }
你能帮帮我吗?
PS:我没有 EAR,我不想用它
【问题讨论】:
-
我正在尝试实现同样的目标。如果您找到了解决方案,请告诉我。
-
亲爱的@Fabio Mignogna,我也有同样的问题,请告诉我它是如何解决的......