论坛首页 Java企业应用论坛

[翻译]CXF用户指南:一个简单的JAX-WS服务

浏览 14704 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-09-26  
dandan_5956 写道
angelbear220 写道
按照楼主的样子写了个简单的例子

package test.demon;

import javax.jws.WebService;

@WebService(endpointInterface = "com.sitech.demon.HelloWorld")
public class HelloWorldImpl implements HelloWorld {

public String sayHello(String tipMsg) {
System.out.println("In Message:" + tipMsg);
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下发布需要进行什么特殊的配置吗?
0 请登录后投票
   发表时间:2011-04-18  
lz,我用ant run server 输出如下日志
Buildfile: D:\cvsroot\first-jaxws\build.xml
maybe.generate.code:
compile:
copy.maven.resources:
build:
server:
     [java] Starting Server
     [java] Exception in thread "main" Server Runtime Error: class: demo.hw.server.jaxws.SayHi could not be found
     [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

望指教
0 请登录后投票
   发表时间:2011-04-18  
补充一下,我的的java项目,在线求解
0 请登录后投票
   发表时间:2011-04-18  
直接run server 报
Starting Server
Exception in thread "main" Server Runtime Error: class: demo.hw.server.jaxws.SayHi could not be found
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
0 请登录后投票
   发表时间:2011-04-19  
Starting Server
Exception in thread "main" Server Runtime Error: class: demo.hw.server.jaxws.SayHi could not be found

有木有这个class,你看了吗
0 请登录后投票
   发表时间:2011-04-19  
当然没有这个class啊,SayHi 是helloworld中的一个方法而已
0 请登录后投票
   发表时间:2011-04-19  
你把你代码的关键部分贴出来看看
0 请登录后投票
   发表时间:2011-04-19  
代码跟lz的是一样的,最后找到原因是因为我的jdk版本低了,升级到1.6 u4以上就ok了!
0 请登录后投票
   发表时间:2011-07-15  
dandan_5956 写道
这边做项目通常都是将编写的服务接口,示例中的HelloWorld接口,打一个jar,发给客户,所以肯定是同一包名的接口,这样操作有点像EJB,因为这边都是不同厂商给某运营商服务,厂商之间互联,用这种方式图个方便,还有一种方式WSDL to Java,手里只有WDSL,查看下http://cxf.apache.org/docs/wsdl-to-java.html



你这种实现的方式,只能仅限制于双方端的系统实现基于java平台,有很大的局限性!

web服务的调用是不限制任何平台的,所以正确的做法是在客户端生成stub代码程序来调用服务。

比如服务提供者是基于.net平台对外暴露的wsdl,他不会给你所谓的接口的,也就是你说的第二种,正常情况下是使用第二种.
0 请登录后投票
   发表时间:2011-07-15  
jzinfo 写道
dandan_5956 写道
这边做项目通常都是将编写的服务接口,示例中的HelloWorld接口,打一个jar,发给客户,所以肯定是同一包名的接口,这样操作有点像EJB,因为这边都是不同厂商给某运营商服务,厂商之间互联,用这种方式图个方便,还有一种方式WSDL to Java,手里只有WDSL,查看下http://cxf.apache.org/docs/wsdl-to-java.html



你这种实现的方式,只能仅限制于双方端的系统实现基于java平台,有很大的局限性!

web服务的调用是不限制任何平台的,所以正确的做法是在客户端生成stub代码程序来调用服务。

比如服务提供者是基于.net平台对外暴露的wsdl,他不会给你所谓的接口的,也就是你说的第二种,正常情况下是使用第二种.

确实如你所说
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics