Web services EJB+;生成进程上的Webservice错误

Web services EJB+;生成进程上的Webservice错误,web-services,jakarta-ee,jpa,Web Services,Jakarta Ee,Jpa,我是java初学者。我使用netbean创建项目JavaEE>EnterpriseApplication,从数据库中创建实体类,并创建JPA持久性(我不确定是否调用它)。所以当我创建ejb时,我已经完成了。我将使用web服务调用ejb。当我使用没有ejb类的web服务或调用ejb时,这就是我的问题所在。它可以构建和部署应用程序,但当我使用ejb时。我在bulid应用程序中出错。任何人都可以解释我为什么要解决这个问题 此错误生成过程 Deploying D:\Project\Source\Dev\

我是java初学者。我使用netbean创建项目JavaEE>EnterpriseApplication,从数据库中创建实体类,并创建JPA持久性(我不确定是否调用它)。所以当我创建ejb时,我已经完成了。我将使用web服务调用ejb。当我使用没有ejb类的web服务或调用ejb时,这就是我的问题所在。它可以构建和部署应用程序,但当我使用ejb时。我在bulid应用程序中出错。任何人都可以解释我为什么要解决这个问题

此错误生成过程

Deploying D:\Project\Source\Dev\PYS\PYSServices\PYSServices-war\dist\PYSServices-war.war
{"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"PYSServices-war.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"PYSServices-war.war\".POST_MODULE: Failed to process phase POST_MODULE of deployment \"PYSServices-war.war\""}}}}
D:\Project\Source\Dev\PYS\PYSServices\PYSServices-war\nbproject\build-impl.xml:1052: The module has not been deployed.
此服务器日志

ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC00001: Failed to start service jboss.deployment.subunit."PYSServices.ear"."PYSServices-ejb.jar".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."PYSServices.ear"."PYSServices-ejb.jar".PARSE: Failed to process phase PARSE of subdeployment "PYSServices-ejb.jar" of deployment "PYSServices.ear"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: org.jboss.msc.service.ServiceNotFoundException: Service service jboss.ejb.default-resource-adapter-name-service not found
    at org.jboss.msc.service.ServiceContainerImpl.getRequiredService(ServiceContainerImpl.java:447) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.getDefaultResourceAdapterName(MessageDrivenComponentDescriptionFactory.java:273)
    at org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.processMessageBeans(MessageDrivenComponentDescriptionFactory.java:153)
    at org.jboss.as.ejb3.deployment.processors.MessageDrivenComponentDescriptionFactory.processAnnotations(MessageDrivenComponentDescriptionFactory.java:81)
    at org.jboss.as.ejb3.deployment.processors.AnnotatedEJBComponentDescriptionDeploymentUnitProcessor.processAnnotations(AnnotatedEJBComponentDescriptionDeploymentUnitProcessor.java:58)
    at org.jboss.as.ejb3.deployment.processors.AbstractDeploymentUnitProcessor.deploy(AbstractDeploymentUnitProcessor.java:81)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    ... 5 more
这是我的web服务源代码。我的问题是,当我键入annotation@EJB时,会发生这种情况。它无法编译并生成war文件。如果我不使用EJB,它可以成功构建并部署到jboss服务器

公共类pyswebs服务{

@Resource
WebServiceContext wsContext;

@EJB
private PysUserFacade pysUserFacade;

@WebMethod(operationName = "hello")
public String hello(@WebParam(name = "name") String txt) {
    return "Hello " + txt + " !";
}

private boolean userValidate(String userid,String password, String email, String mobileno){
    boolean rev = true;

    if (userid != null && password != null && email != null && mobileno != null) { 

        if (userid.length() <5){ rev = false;}
        if (password.length() < 6) { rev= false;}
        if (!email.contains("@")) { rev = false;}
        if (mobileno.length() != 10) {rev = false; }

    } else {
        rev = false;
    }

    return rev;
}

@WebMethod(operationName="Create User")
public String crateUser(@WebParam(name="userId") String userid,@WebParam(name="userPassword") String password, @WebParam(name="eMail") String email, @WebParam(name="mobileNo") String mobileNo){
    String rev="";

    MessageContext mc = wsContext.getMessageContext();
    HttpServletRequest req = (HttpServletRequest) mc.get(MessageContext.SERVLET_REQUEST);
    String clientIP = req.getRemoteAddr();

    if (userValidate(userid, password, email, mobileNo)){
        PysUser eUser = new PysUser();
        eUser.setUserId(userid);
        eUser.setUserPassword(password);
        eUser.setMobileNo(mobileNo);
        eUser.setCreateIp(clientIP);
        eUser.setCreateDtm(new Date());
        pysUserFacade.create(eUser);
        rev = "Create User Success";
    } else {
        rev = "Err001:Verify Create User Faile";
    }

    return rev;
}
@Resource
webservicecontextwscontext;
@EJB
私人私房;
@WebMethod(operationName=“hello”)
公共字符串hello(@webgram(name=“name”)字符串txt){
返回“Hello”+txt+“!”;
}
私有布尔userValidate(字符串userid、字符串密码、字符串电子邮件、字符串mobileno){
布尔值rev=true;
如果(userid!=null&&password!=null&&email!=null&&mobileno!=null){

如果(userid.length()没有完全了解您的问题,但是查看错误消息,我猜:

您可能需要在项目中激活/启用EJB规范。 确保在EJB中包含了所有必需的注释


希望这对您有所帮助

您应该发布您的代码,以帮助其他人可以帮助您。请检查您是否在类声明之前忘记了注释@WebService,否则,请尝试分离您的业务逻辑和web服务,使用会话bean管理您的JPA实体,并在web服务类中使用会话bean