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."

Reply via email to