最简单CXF的配置问题
刚学Web Service ,用的是apache-cxf-2.2.7。
但是第一个简单的发布Service都没成功,暂时不集成spring,生成不了wsdl.xml 。
web.xml
- XML code
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>CXFServlet</servlet-name> <display-name>CXF Servlet</display-name> <servlet-class> org.apache.cxf.transport.servlet.CXFServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping></web-app>
- Java code
package com.pal.service.api;import javax.jws.WebService;@WebServicepublic interface SayHello { public String hello(); }- Java code
package com.pal.service.impl;import javax.jws.WebService;import com.pal.service.api.SayHello;@WebService(endpointInterface="com.pal.service.api.SayHello",serviceName="SayHello")public class SayHelloImpl implements SayHello { public String hello() { return "hello , Web Service !"; }}- Java code
package com.pal.service.app;import javax.xml.ws.Endpoint;import com.pal.service.impl.SayHelloImpl;public class WebApp { public static void main(String[] args) { System.out.println("Starting Server"); SayHelloImpl implementor = new SayHelloImpl(); String address = "http://localhost:8080/helloWorld"; Endpoint.publish(address, implementor); }}访问http://localhost:8080/helloWorld。Tomcate 报告404 !
这是最简单的发布服务的配置了,那里有问题呢???
[解决办法]
你用 main 方法运行的话,CXF 会启动内置的 jetty 服务器来提供 Web 服务,因此那个 web.xml 配了等于没配。
如果你是用 main 方法启动的,实在没出看来有什么问题。
一般用 main 启动的话,启动正常会在控制台中输出日志的,我不知道你看到日志了没有?