RESTeasy を使用して JBoss 6 Final で RESTful Web サービスを開発しています。外部 EJB があり、EJB を Web サービスに注入したいと考えています。
これは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 は常に null です。
私はこの解決策を試しました:
- HelloWorldResources に @Stateless を配置しました
- WEB-INF に beans.xml を作成しました
MyRESTApplication を変更しました
@ApplicationPath("wsapp") public class MyRESTApplication extends Application { }
手伝って頂けますか?
PS: EAR e を持っていません。使用したくありません。