使用jboss-4.2.2.GA,在调用remote web service时抛org.jboss.ws.WSException: Cannot obtain java type mapping for: {......}sayHello
使用EJB3发布WebService很简单,只要使用@WebService 和 @WebMethod 注释就行了。
@WebService
public @Stateless class HelloBean implements Hello {
@WebMethod
public String sayHello(String name) {
return "Hello " + name;
}
}
启动JBoss 通过 http://localhost:8080/myproject/HelloBean?wsdl 查看wsdl
client 代码如下
public static void callSayHello() {
String wsdl = "http://localhost:8080/myproject/HelloBean?wsdl";
try {
URL url = new URL(wsdl);
String namespace = "http://bean.web......./";
QName qname = new QName(namespace, "HelloBeanService");
QName port = new QName(namespace, "HelloBeanPort");
QName operation = new QName(namespace, "sayHello");
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(url, qname);
Call call = service.createCall(port, operation);
System.out.println(call.invoke(new Object[]{"Andy"}));
} catch (Exception e) {
e.printStackTrace();
}
}
运行报错 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了。
参考
JBoss4 Guide 12.3. Web Services Clients
http://docs.jboss.org/jbossas/jboss4guide/r2/html/ch12.html#ch12.ws4ee-view.fig
注释类型 WebService
http://gceclub.sun.com.cn/Java_Docs/jdk6/docs/zh/api/javax/jws/WebService.html
分享到:
相关推荐
在压缩包"webservice的jar"中,可能包含的类和库有: - `javax.xml.ws.*` 包:这是JAX-WS的核心API,包含用于创建和访问Web服务的接口和类。 - `com.sun.xml.ws.*` 包:这是Sun Microsystems提供的JAX-WS实现,包含...
在提供的压缩包文件中,"php+webservice"很可能包含了PHP代码文件,用于演示如何调用由MyEclipse创建的Web服务。这些文件可能包括一个PHP脚本,该脚本使用SoapClient类与Web服务交互,以及MyEclipse项目中的源代码和...
【标题】: "Web服务(WebService)在JBoss应用服务器上的实现教程" 【描述】: "这个压缩包文件`webservice-jboss-tutorial.zip`包含了关于如何在JBoss应用服务器上部署和使用Web服务的教程。Web服务是一种基于开放...
在“java_webservice_myeclipse.rar”压缩包中,包含了详细的步骤和图解,帮助你理解Web服务在MyEclipse中的实际操作: 1. 项目结构:通常包含src目录(源代码)、WebContent目录(Web应用资源)以及WEB-INF目录...
- **应用服务器**:JAX-WS服务通常部署在应用服务器上,如Tomcat、JBoss、GlassFish等,这些服务器提供运行环境和支持。 - **测试工具**:可以使用`WSDL`工具或`SOAPUI`进行Web服务的测试和调试。 6. **安全性**...
在Java EE环境中,我们可以将服务部署到应用服务器,如Tomcat或JBoss。创建一个`HelloWebService.xml`部署描述符,并在`WEB-INF`目录下添加。然后,将服务类和部署描述符打包成WAR文件,部署到服务器。 **步骤5:...
3. **熟悉客户端调用**:了解如何在各种编程语言中实现对WebService的调用。 4. **实践项目经验**:通过实际代码加深理解,提高解决问题的能力。 总的来说,"webservice视频源码"是一个很好的学习资源,能够帮助...
为了更好地理解WebService调用,我们可以创建一个简单的Java JAX-WS服务,然后在另一个项目中作为客户端调用。具体步骤包括服务端的部署、客户端的生成以及调用服务的方法。 **七、工具支持** 在Java开发中,常用...
5. **服务发布与消费**: 在JWS中,服务提供者通过发布服务到一个应用服务器,如Tomcat或JBoss,然后服务消费者通过WSDL找到并调用服务。调用过程通常涉及SOAP请求的发送和响应的接收。 在提供的压缩包文件中,"jws-...
接着,你可以编写服务端和客户端代码,通过CXF提供的API来创建、发布和调用WebService。这个过程将帮助你直观地理解CXF如何实现服务的发布和调用。 总的来说,Apache CXF是一个强大且灵活的框架,适用于构建和消费...
在本例中,Web服务使用了Java语言进行开发,这表明我们将探讨Java中的WebService技术,包括其原理、实现方式以及如何通过提供的Ws_Client和Ws_server两个文件进行交互。 1. WebService的基本概念: WebService是一...
7. **容器集成**:在实际项目中,Web Service通常部署在应用服务器(如Tomcat、JBoss、WebLogic等)上,这些服务器通常提供对JAX-WS的集成和支持,简化部署和管理。 总结来说,Java 6通过内置的JAX-WS简化了Web ...
在安全性方面,CXF支持WS-Security标准,允许在SOAP消息中添加安全性措施,如数字签名和加密。同时,CXF支持WS-Addressing标准,为SOAP消息的路由和传递提供了可靠的支持。WS-ReliableMessaging标准为消息传递提供了...
Java WebService 是一种基于开放标准的技术,允许不同的应用程序和系统在互联网上进行互操作和通信。它通过HTTP协议作为通信基础,确保了跨平台的兼容性和灵活性。Web Service的核心目标是实现不同系统间的无缝集成...
它简化了将Java方法暴露为WebService的过程,并且提供了客户端调用WebService的方法。 6. **创建WebService的步骤**: - 定义服务接口:通常是一个Java接口,包含服务的方法。 - 实现服务接口:创建一个类实现该...
在IT行业中,开发Java WebService是一项常见的任务,用于构建可跨平台、跨应用程序的数据交换机制。MyEclipse作为一款强大的集成开发环境(IDE),为Java WebService的开发提供了便利。以下将详细介绍使用MyEclipse...
- **JAX-WS, JSR-181, SAAJ, JAX-RS**:这些是Java EE中的标准API,用于开发WebService。 - **SOAP 1.1/1.2, WS-I Basic Profile, WS-Security, WS-Addressing, WS-RM, WS-Policy**:这些是WebService的核心协议和...
另一种常见的方式是从已有Java类开始,通过注解(如JAX-WS的@WebService和@WebMethod)将普通Java类转换为Web Service。这种方式更加直观,可以直接使用Java类的方法作为服务操作。 Java Web Service测试与部署 ...
import javax.xml.ws.Service; Service service = Service.create(new URL("http://localhost:8080/your-app/HelloService?wsdl"), QName.valueOf("http://example.com/","HelloServiceService")); HelloService ...