Java 1.8, apache tomcat 8 and cxf 3.2.2 not working. Do not put code which are not working.
It is a pain to developers cxf version used 3.2.2 All cxf version lib were used in WEB-INF\lib folder 13-Mar-2018 21:38:20.806 WARNING [localhost-startStop-1] org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.startup Could not start WS-Discovery Service. javax.xml.ws.WebServiceException: java.lang.NullPointerException at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:375) at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255) at org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.startup(WSDiscoveryServiceImpl.java:259) at org.apache.cxf.ws.discovery.internal.WSDiscoveryServiceImpl.serverStarted(WSDiscoveryServiceImpl.java:154) at org.apache.cxf.ws.discovery.listeners.WSDiscoveryServerListener.startServer(WSDiscoveryServerListener.java:73) at org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl.startServer(ServerLifeCycleManagerImpl.java:61) at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:137) at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:224) at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211) at org.apache.cxf.jaxws.spring.NamespaceHandler$SpringServerFactoryBean.create(NamespaceHandler.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) --------------------------apache-cxf-services.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:soap="http://cxf.apache.org/bindings/soap" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <jaxws:server id="jaxwsService" serviceClass="demo.hw.server.HelloWorld" address="/hello_world"> <jaxws:serviceBean> <bean class="demo.hw.server.HelloWorldImpl"/> </jaxws:serviceBean> </jaxws:server> </beans> ---------------------------web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>cxf</display-name> <servlet> <description>Apache CXF Endpoint</description> <display-name>cxf</display-name> <servlet-name>cxf</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>cxf</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <session-config> <session-timeout>60</session-timeout> </session-config> </web-app> ---------------------------------- --------------------------apache cxf 3.2.2 version samples code package demo.hw.server; import java.util.Map; import javax.jws.WebService; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; import javax.jws.soap.SOAPBinding.Use; @WebService(name="HelloWorld") @SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL) public interface HelloWorld { String sayHi(String text); String sayHiToUser(User user); @XmlJavaTypeAdapter(IntegerUserMapAdapter.class) Map<Integer, User> getUsers(); } package demo.hw.server; import java.util.LinkedHashMap; import java.util.Map; import javax.jws.WebService; @WebService(serviceName = "HelloWorld", endpointInterface = "demo.hw.server.HelloWorld") public class HelloWorldImpl implements HelloWorld { Map<Integer, User> users = new LinkedHashMap<Integer, User>(); public String sayHi(String text) { System.out.println("sayHi called"); return "Hello " + text; } public String sayHiToUser(User user) { System.out.println("sayHiToUser called"); users.put(users.size() + 1, user); return "Hello " + user.getName(); } public Map<Integer, User> getUsers() { System.out.println("getUsers called"); return users; } } // END SNIPPET: service "Talent is...@cxf.apache.org God-given; be humble. Fame is man-given; be thankful. Conceit is self-given; be careful."