当我在Eclipse中将Rest服务本地部署到我的WAS 85环境时,我得到了一个奇怪的例外:
CWWAM0002E: An exception occurred while merging an annotation into deployment descriptor: com.ibm.wsspi.amm.merge.MergeException: Unable to find EnterpriseBean for class WackyDoodleResource
com.ibm.wsspi.amm.merge.MergeException: Unable to find EnterpriseBean for class WackyDoodleResource
这不是我真正的代码,但这里是我如何设置它更改名称以保护无辜:
@Path("/wacky-doodle-resource")
public class WackyDoodleResource{
@Context UriInfo uriInfo
@Context SecurityContext securityContext;
@Inject WackyDoodleEJB wackyDoodleEJB;
@POST
@Consumes(MediaType.APPLICATIONI_JSON)
@RolesAllowed("WACKYDOODLES")
@Produces(MediaType.APPLICATIONI_JSON)
public Response createWackyDoodle(WackyDoodleRequestRO requestRO{
String response = null;
response = wackyDoodleEJB.createWackyDoodle(requestRO)
}
return Response.ok(response)).build();
}
@Default
@Singleton
public class WackyDoodleEJB implements IWackyDoodleEJB{
public String createWackyDoodle(WackyDoodleRequestRO req){
System.out.println("Do Something Wacky!");
}
}
public interface IWackyDoodleEJB{
public String createWackyDoodle(WackyDoodleRequestRO request);
}
(为了说明目的,简单地重新编写我更复杂的代码)
当我将我的耳朵部署到本地Websphere服务器时,我看到了异常。该应用程序似乎启动并部署正常(如果您不注意在日志中找到的内容)。但是,当我试图点击我的任何http请求@myResources时,我得到了这个奇怪的不起眼的消息
E com.ibm.ws.webcontainer.internal.WebContainer handleRequest SRVE0255E: A WebGroup/Virtual Host to handle / has not been defined.
我怀疑这与我的耳朵没有正确发布有关(我的问题中的例外)。老实说,我不知道。那么,这里可能发生什么?这看起来应该是漂亮的boilertplate东西? 该错误表明我应该将常规资源pojo转换为EJB?例如,如果我将无状态@nnotation添加到我的类中,则日志中的上述异常消失,但我仍然无法访问我的服务资源。我得到了同样的非描述性异常。我很茫然,我一直在看这个一个小时。如果你能指出我的任何方向,我会很感激。