[翻译]CXF用户指南:一个简单的JAX-WS服务
原文地址:http://cxf.apache.org/docs/a-simple-jax-ws-service.html
这个例子将通过编写JAX-WS来引导你开发第一个服务
- 设置构建编写服务发布服务访问服务
设置构建
如果你使用Maven来构建你的工程,查看这个页面
否则,打开你最喜爱的IDE,然后创建一个新的工程,我们首先要做的是将CXF依赖的包添加到工程里,你可以在CXF的发布包的ib目录下找到这些依赖包(提示:如果发布包的版本改变,这些jar包上的版本数字可能有所不同)
在实现类上的@WebService注解使CXF知道使用那个接口来创建WSDL,我们示例中是HelloWorld接口
发布服务return "out message";
}
}
启动服务报错,楼主有碰到过吗?
[JAM] Warning: failed to resolve class test.demon.HelloWorldImpl
<2010-9-25 下午11时00分22秒 CST> <Error> <HTTP> <BEA-101216> <Servlet: "test.demon.HelloWorldImpl" failed to preload on startup in Web application: "WebRoot".
class: test.demon.jaxws.SayHello could not be found
at com.sun.xml.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:272)
at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:566)
at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:513)
at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:358)
at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:245)
Truncated. see log file for complete stacktracereturn "out message";
}
}
启动服务报错,楼主有碰到过吗?
[JAM] Warning: failed to resolve class test.demon.HelloWorldImpl
<2010-9-25 下午11时00分22秒 CST> <Error> <HTTP> <BEA-101216> <Servlet: "test.demon.HelloWorldImpl" failed to preload on startup in Web application: "WebRoot".
class: test.demon.jaxws.SayHello could not be found
at com.sun.xml.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:272)
at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:566)
at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:513)
at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:358)
at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:245)
Truncated. see log file for complete stacktrace
从报错的信息看出是HelloWorldImpl没有正确加载,你是采用Web工程来编写,所给信息不是很全,我也不能断定是什么问题,示例中是Java工程,通过http://svn.apache.org/repos/asf/cxf/trunk/distribution/src/main/release/samples/java_first_jaxws/src/demo/hw/server/Server.java中Server类的调用Jetty来发布的服务,我试过没有什么问题。return "out message";
}
}
启动服务报错,楼主有碰到过吗?
[JAM] Warning: failed to resolve class test.demon.HelloWorldImpl
<2010-9-25 下午11时00分22秒 CST> <Error> <HTTP> <BEA-101216> <Servlet: "test.demon.HelloWorldImpl" failed to preload on startup in Web application: "WebRoot".
class: test.demon.jaxws.SayHello could not be found
at com.sun.xml.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:272)
at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:566)
at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:513)
at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:358)
at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:245)
Truncated. see log file for complete stacktrace
从报错的信息看出是HelloWorldImpl没有正确加载,你是采用Web工程来编写,所给信息不是很全,我也不能断定是什么问题,示例中是Java工程,通过http://svn.apache.org/repos/asf/cxf/trunk/distribution/src/main/release/samples/java_first_jaxws/src/demo/hw/server/Server.java中Server类的调用Jetty来发布的服务,我试过没有什么问题。
我是通过weblogic10进行发布的,同样的工程在tomcat下发布没有问题,在weblogic下发布需要进行什么特殊的配置吗? [java] at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(HttpEndpoint.java:269)
[java] at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:87)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:59)
[java] at javax.xml.ws.Endpoint.publish(Endpoint.java:156)
[java] at demo.hw.server.Server.<init>(Server.java:31)
[java] at demo.hw.server.Server.main(Server.java:36)
[java] Caused by: class: demo.hw.server.jaxws.SayHi could not be found
[java] at com.sun.xml.internal.ws.modeler.RuntimeModeler.getClass(RuntimeModeler.java:271)
[java] at com.sun.xml.internal.ws.modeler.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:562)
[java] at com.sun.xml.internal.ws.modeler.RuntimeModeler.processMethod(RuntimeModeler.java:509)
[java] at com.sun.xml.internal.ws.modeler.RuntimeModeler.processClass(RuntimeModeler.java:355)
[java] at com.sun.xml.internal.ws.modeler.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:251)
[java] at com.sun.xml.internal.ws.server.RuntimeEndpointInfo.createSEIModel(RuntimeEndpointInfo.java:170)
[java] at com.sun.xml.internal.ws.server.RuntimeEndpointInfo.init(RuntimeEndpointInfo.java:317)
[java] at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(HttpEndpoint.java:298)
[java] at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(HttpEndpoint.java:263)
[java] ... 5 more
[java] Java Result: 1
BUILD SUCCESSFUL
Total time: 905 milliseconds
望指教at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(HttpEndpoint.java:269)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:87)
at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:59)
at javax.xml.ws.Endpoint.publish(Endpoint.java:156)
at demo.hw.server.Server.<init>(Server.java:31)
at demo.hw.server.Server.main(Server.java:36)
Caused by: class: demo.hw.server.jaxws.SayHi could not be found
at com.sun.xml.internal.ws.modeler.RuntimeModeler.getClass(RuntimeModeler.java:271)
at com.sun.xml.internal.ws.modeler.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:562)
at com.sun.xml.internal.ws.modeler.RuntimeModeler.processMethod(RuntimeModeler.java:509)
at com.sun.xml.internal.ws.modeler.RuntimeModeler.processClass(RuntimeModeler.java:355)
at com.sun.xml.internal.ws.modeler.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:251)
at com.sun.xml.internal.ws.server.RuntimeEndpointInfo.createSEIModel(RuntimeEndpointInfo.java:170)
at com.sun.xml.internal.ws.server.RuntimeEndpointInfo.init(RuntimeEndpointInfo.java:317)
at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(HttpEndpoint.java:298)
at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(HttpEndpoint.java:263)
... 5 more
有木有这个class,你看了吗 15 楼 zhengshuo 2011-04-19 当然没有这个class啊,SayHi 是helloworld中的一个方法而已
16 楼 dandan_5956 2011-04-19 你把你代码的关键部分贴出来看看 17 楼 zhengshuo 2011-04-19 代码跟lz的是一样的,最后找到原因是因为我的jdk版本低了,升级到1.6 u4以上就ok了!