Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux集群 > Architecture > » 正文

在JBoss中调用WebService出org.jboss.ws.WSException

来源: feiyeguohai 分享至:

下面的方法可用,jar包在底下

 

使用jboss-4.2.2.GA,在调用remote web service时抛org.jboss.ws.WSException: Cannot obtain java type mapping for: {......}sayHello

 

使用EJB3发布WebService很简单,只要使用@WebService 和 @WebMethod 注释就行了。

 

  1. @WebService
  2. public @Stateless class HelloBean implements Hello {
  3.  
  4. @WebMethod
  5. public String sayHello(String name) {
  6. return "Hello " + name;
  7. }
  8. }

启动JBoss 通过 http://localhost:8080/myproject/HelloBean?wsdl 查看wsdl

 

client 代码如下

  1. public static void callSayHello() {
  2. String wsdl = "http://localhost:8080/myproject/HelloBean?wsdl" ;
  3.  
  4. try {
  5. URL url = new URL(wsdl);
  6. String namespace = "http://bean.web......./" ;
  7. QName qname = new QName(namespace, "HelloBeanService" );
  8. QName port = new QName(namespace, "HelloBeanPort" );
  9. QName operation = new QName(namespace, "sayHello" );
  10.  
  11. ServiceFactory factory = ServiceFactory.newInstance();
  12. Service service = factory.createService(url, qname);
  13. Call call = service.createCall(port, operation);
  14.  
  15. System.out.println(call.invoke(new Object[]{ "Andy" }));
  16. } catch (Exception e) {
  17. e.printStackTrace();
  18. }
  19. }

 

运行报错 org.jboss.ws.WSException: Cannot obtain java type mapping for: {......}sayHello

同样的client代码,使用一个简单的 main函数却可以运行。

 

google之,找到一点有用的 http://www.mail-archive.com/jboss-user@lists.jboss.org/msg13433.html

 

把JBoss里的jboss-jaxrpc.jar都删掉,从axis中复制axis.jar jaxrpc.jar commons-discovery-0.2.jar 到JBoss里,再运行原来的代码,就OK了。

 


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史