Complex JAX-WS Objects
I am testing a JAX-WS sample at sortedset.com (Apache CXF, TomEE) and I have modified it to include a complex object. I am getting NullPointerException
in org.apache.cxf.jaxb.Utils.getMethodXJTA(Utils.java:294)
. Is there a missing annotation in my code? Or is there still work to be done for marshaling complex objects?
import javax.jws.WebService;
@WebService(
portName = "HelloTomEEPort",
serviceName = "HelloTomEEService",
targetNamespace = "http://sortedset.com/wsdl",
endpointInterface = "HelloTomEEWs")
public class HelloTomEEIMplementation implements HelloTomEEWs {
public Person getPerson(){
Person p = new Person();
p.setID(5);
p.setName("Tom");
return p;
}
}
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService(targetNamespace = "http://sortedset.com/wsdl")
public interface HelloTomEEWs {
@WebMethod
public Person getPerson();
}
import javax.xml.bind.annotation.XmlRegistry;
@XmlRegistry
public class Person{
/**
*
*/
private int iD;
private String name;
public int getID() {
return iD;
}
public void setID(int iD) {
this.iD = iD;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
SEVERE: CXF Web Service Deployment Error for Servlet HelloTomEEIMplementation java.lang.NullPointerException when org.apache.cxf.jaxb.Utils.getMethodXJTA (Utils.java:294) in org.apache.cxf.jaxbalk.JAXBContextInitializer (. java: 375) to org.apache.cxf.jaxb.JAXBContextInitializer.addClass (JAXBContextInitializer.java:329) to org.apache.cxf.jaxb.JAXBContextInitializer.addType (JAXBContextInitializer.addType: JAXBContextInitializer.jaxb. .JAXBContextInitializer.addType (JAXBContextInitializer.java:222) at org.apache.cxf.jaxb.JAXBContextInitializer.walkReferences (JAXBContextInitializer.java:365) at org.apache.Initializer.java:365) at org.apache.Initializer. org.apache.cxf.jaxb.JAXBContextInitializer.begin (JAXBContextInitializer.java:183) in org.apache.cxf.service.ServiceModelVisitor.visitOperation (ServiceModelVisitor.java:109) at org.apache.cxf.service.ServiceModelVisitor.walk (ServiceModelVisitor.java:74) at org.apache.cxf.jaxb.JAXBDataBinding.initialize (JAXBDataBinding.java:325) .cxf.service.factory.AbstractServiceFactoryBean.initializeDataBindings (AbstractServiceFactoryBean.java:86) at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass (ReflectionBeanFean.buildServiceFromClass (ReflectionBeanFeatures.) .buildServiceFromClass (JaxWsServiceFactoryBean.java:697) in org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel (ReflectionServiceFactoryBean.javaBean.java.factoryBean.java.factoryBean. ) in 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.pojo.PojoEndpoint (PojoEndpoint.java:67) at org.apache.openejb.server.cxf.pojo.PojoWsContainer.createEndpoint (PojoWsContainer.java:70) at org.apache.openejb.server.cxf.pojo.PojoWsContainer.jocreateEndpoint : 45) at org.apache.openejb.server.cxf.CxfWsContainer.start (CxfWsContainer.java:50) at org.apache.openejb.server.cxf.CxfService.createPojoWsContainer (CxfService) .java.102 openejb.server.webservices.WsService.afterApplicationCreated (WsService.java:390) at org.apache.tomee.webservices.TomeeJaxWsService.afterApplicationCreated (TomeeJaxWsService.javalect.NativeMethod) at sun.refhodinctive reflect.NativeMethodAccessorImpl.invoke (Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (Unknown Source) at java.lang.reflect.Method.invoke (Unknown Source) at org.apache.openejb.observer.ObserverManver (ObokeManver java: 149) at org.apache.openejb.observer.ObserverManager.fireEvent (ObserverManager.java:69) at org.apache.openejb.loader.SystemInstance.fireEvent (SystemInstance.java:108) at org.apache.tomee.catalina .TomcatWebAppBuilder.afterStart (TomcatWebAppBuilder.java:1608) at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent (GlobalListenerSupport.java:113) at org.apache.catalinaSupport.util.LifeEort at org.apache.catalinacycle.util.LifeEort org.apache.catalina.util.LifecycleBase.fireLifecycleEvent (LifecycleBase.java:90) at org.apache.catalina.util.LifecycleBase.setStateInternal (LifecycleBase.java:402) at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:168) at org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1559) at org .apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1549) at java.util.concurrent.FutureTask.run (Unknown source) at java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown source) at java. util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown source) at java.lang.Thread.run (Unknown source)run (Unknown source) at java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown source) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown source) at java.lang.Thread.run (Unknown source)run (Unknown source) at java.util.concurrent.ThreadPoolExecutor.runWorker (Unknown source) at java.util.concurrent.ThreadPoolExecutor $ Worker.run (Unknown source) at java.lang.Thread.run (Unknown source)
source to share