Java JAX-WS服务器未部署。我做错了什么?

Java JAX-WS服务器未部署。我做错了什么?,java,web-services,tomcat,jakarta-ee,jax-ws,Java,Web Services,Tomcat,Jakarta Ee,Jax Ws,编辑:好的,它肯定与用户类有关。它只是一个典型的java类。我应该用它做些特别的事吗?我正在使用另一个Java项目,我在用户类的构建路径中引用了该项目 编辑2:我解决了老问题,但现在我有了一个新问题,真的很奇怪。托管我的服务的Tomcate似乎不喜欢用户类的setter方法 以下是服务接口: import java.util.Date; import java.util.List; import java.util.UUID; import javax.jws.WebMethod; impor

编辑:好的,它肯定与用户类有关。它只是一个典型的java类。我应该用它做些特别的事吗?我正在使用另一个Java项目,我在用户类的构建路径中引用了该项目

编辑2:我解决了老问题,但现在我有了一个新问题,真的很奇怪。托管我的服务的Tomcate似乎不喜欢用户类的setter方法

以下是服务接口:

import java.util.Date;
import java.util.List;
import java.util.UUID;

import javax.jws.WebMethod;
import javax.jws.WebService;

import BioFlip.User;
import BioFlip.User.Permission;

@WebService(targetNamespace = "http://bioflip.org/wsdl")
public interface IUserService 
{
    @WebMethod
    public List<User> getUserList();

    @WebMethod
    public int getRegisteredUserCount();

    @WebMethod
    public List<User> getGuestList();

    @WebMethod
    public boolean isEnrolled(User user);

    @WebMethod
    public boolean enrollUser(User user);

    @WebMethod
    public boolean enrollUser(String firstname, String lastname, Permission permission, String phoneNumber, 
            String fingerImage, String faceImage, Date accessFrom, Date accessTo, Date lastLogin, UUID id);

    @WebMethod
    public boolean removeUser(User user);

    @WebMethod
    public User getEnrolledUser(UUID id);
}
以下情况导致Tomcat崩溃:

  /* Sets the user's last name */
//  public void setLastName(String newLastName) {
//    lastname = newLastName;
//  }
//  
  /* Returns the user's first name */
  public String getFirstName() {
    return firstname;
  }

  /* Sets the user's first name */
  public void setFirstName(String newfirstname) {
    firstname = firstname;
  }

  /* Returns the user's permission level */
  public Permission getPermission() {
    return permission;
  }
以下是错误:

Aug 18, 2014 5:17:49 PM org.apache.openejb.server.webservices.WsService deployApp
SEVERE: Error deploying JAX-WS Web Service for EJB Calculator
java.lang.NullPointerException
    at org.apache.cxf.jaxb.Utils.getMethodXJTA(Utils.java:294)
    at org.apache.cxf.jaxb.JAXBContextInitializer.walkReferences(JAXBContextInitializer.java:375)
    at org.apache.cxf.jaxb.JAXBContextInitializer.addClass(JAXBContextInitializer.java:329)
    at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:232)
    at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:222)
    at org.apache.cxf.jaxb.JAXBContextInitializer.walkReferences(JAXBContextInitializer.java:365)
    at org.apache.cxf.jaxb.JAXBContextInitializer.addClass(JAXBContextInitializer.java:329)
    at org.apache.cxf.jaxb.JAXBContextInitializer.begin(JAXBContextInitializer.java:183)
    at org.apache.cxf.service.ServiceModelVisitor.visitOperation(ServiceModelVisitor.java:97)
    at org.apache.cxf.service.ServiceModelVisitor.walk(ServiceModelVisitor.java:74)
    at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:325)
    at org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:490)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:697)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:550)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:214)
    at org.apache.openejb.server.cxf.CxfEndpoint.doServiceCreate(CxfEndpoint.java:101)
    at org.apache.openejb.server.cxf.ejb.EjbEndpoint.<init>(EjbEndpoint.java:64)
    at org.apache.openejb.server.cxf.ejb.EjbWsContainer.createEndpoint(EjbWsContainer.java:55)
    at org.apache.openejb.server.cxf.ejb.EjbWsContainer.createEndpoint(EjbWsContainer.java:44)
    at org.apache.openejb.server.cxf.CxfWsContainer.start(CxfWsContainer.java:50)
    at org.apache.openejb.server.cxf.CxfService.createEjbWsContainer(CxfService.java:83)
    at org.apache.openejb.server.webservices.WsService.deployApp(WsService.java:281)
    at org.apache.openejb.server.webservices.WsService.deploy(WsService.java:227)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.openejb.observer.ObserverManager$MethodInvocation.invoke(ObserverManager.java:399)
    at org.apache.openejb.observer.ObserverManager$InvocationList.invoke(ObserverManager.java:514)
    at org.apache.openejb.observer.ObserverManager$BeforeAndAfterInvocationSet.invoke(ObserverManager.java:494)
    at org.apache.openejb.observer.ObserverManager.doFire(ObserverManager.java:110)
    at org.apache.openejb.observer.ObserverManager.fireEvent(ObserverManager.java:99)
    at org.apache.openejb.loader.SystemInstance.fireEvent(SystemInstance.java:134)
    at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:884)
    at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623)
    at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248)
    at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087)
    at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)

您是否按Eclipse顺序添加了包含用户的项目并将其导出?是的,它就在那里。我想它是自动添加的。好吧,它肯定和用户类有关。我做了一个简单的计算器服务,它一直在工作,直到我添加了用户对象作为一个可能的参数只是为了测试。用户就像一个典型的java类一样构建。我应该对它做一些特殊的处理,使其可用作服务参数吗?您的错误日志显示:NoClassDefFoundError:BioFlip/User,因此您需要将包含该类的jar包含到当前项目中,或者确保您立即将其添加到ClassPath中。我已将其作为项目包含在构建路径下。对不起,我对这个完全陌生。你知道我能读到的关于如何做到这一点的教程吗?我找到的所有JAX-WS教程都是超基本的,只不过是没有外部类的Hello World程序。
Aug 18, 2014 5:17:49 PM org.apache.openejb.server.webservices.WsService deployApp
SEVERE: Error deploying JAX-WS Web Service for EJB Calculator
java.lang.NullPointerException
    at org.apache.cxf.jaxb.Utils.getMethodXJTA(Utils.java:294)
    at org.apache.cxf.jaxb.JAXBContextInitializer.walkReferences(JAXBContextInitializer.java:375)
    at org.apache.cxf.jaxb.JAXBContextInitializer.addClass(JAXBContextInitializer.java:329)
    at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:232)
    at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:222)
    at org.apache.cxf.jaxb.JAXBContextInitializer.walkReferences(JAXBContextInitializer.java:365)
    at org.apache.cxf.jaxb.JAXBContextInitializer.addClass(JAXBContextInitializer.java:329)
    at org.apache.cxf.jaxb.JAXBContextInitializer.begin(JAXBContextInitializer.java:183)
    at org.apache.cxf.service.ServiceModelVisitor.visitOperation(ServiceModelVisitor.java:97)
    at org.apache.cxf.service.ServiceModelVisitor.walk(ServiceModelVisitor.java:74)
    at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:325)
    at org.apache.cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings(AbstractServiceFactoryBean.java:86)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:490)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:697)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:550)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:265)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:214)
    at org.apache.openejb.server.cxf.CxfEndpoint.doServiceCreate(CxfEndpoint.java:101)
    at org.apache.openejb.server.cxf.ejb.EjbEndpoint.<init>(EjbEndpoint.java:64)
    at org.apache.openejb.server.cxf.ejb.EjbWsContainer.createEndpoint(EjbWsContainer.java:55)
    at org.apache.openejb.server.cxf.ejb.EjbWsContainer.createEndpoint(EjbWsContainer.java:44)
    at org.apache.openejb.server.cxf.CxfWsContainer.start(CxfWsContainer.java:50)
    at org.apache.openejb.server.cxf.CxfService.createEjbWsContainer(CxfService.java:83)
    at org.apache.openejb.server.webservices.WsService.deployApp(WsService.java:281)
    at org.apache.openejb.server.webservices.WsService.deploy(WsService.java:227)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.openejb.observer.ObserverManager$MethodInvocation.invoke(ObserverManager.java:399)
    at org.apache.openejb.observer.ObserverManager$InvocationList.invoke(ObserverManager.java:514)
    at org.apache.openejb.observer.ObserverManager$BeforeAndAfterInvocationSet.invoke(ObserverManager.java:494)
    at org.apache.openejb.observer.ObserverManager.doFire(ObserverManager.java:110)
    at org.apache.openejb.observer.ObserverManager.fireEvent(ObserverManager.java:99)
    at org.apache.openejb.loader.SystemInstance.fireEvent(SystemInstance.java:134)
    at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:884)
    at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623)
    at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1248)
    at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1087)
    at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:130)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)