搭建一个简单的Web Service服务器
要想跑Web Service客户端,前提是要有个Web Service服务器。如果你已经有Web Service服务器,那么可以跳过这一步。如果没有,可以使用JAX-WS搭建一个简单的Web Service服务器。
@WebService public class HelloWorld { public String sayHello(String name) { return "Hello " + name; } public static void main(String[] args) { HelloWorld helloWorld = new HelloWorld(); String address = "http://localhost:8080/helloWorld"; Endpoint.publish(address, helloWorld); } }
直接启动程序运行main方法,即完成搭建了一个简单的Web Service服务器了。可以通过地址http://localhost:8080/helloWorld?wsdl查看Web Service的WSDL。WSDL是用来告诉我们如何去调用这个Web Service。
wsimport命令
在JDK的安装目录的bin目录下,有一个wsimport.exe文件,如果是Linux系统也可以找到相应的wsimport文件。在配置好环境变量的情况下,可以使用wsimport命令生成Web Service客户端的Java代码。
wsimport -s D:\xxg -Xnocompile -p com.xxg.wsclient http://localhost:8080/helloWorld
参数介绍: -s
指定Java文件的生成目录 -p
指定Java的package -Xnocompile
不需要编译成class文件
命令执行完成后,在目标文件夹下会生成Web Service客户端Java代码:
以上程序即是一个简单的Web Service客户端,它会调用Web Service并输出返回结果。
jaxws-maven-plugin插件
以上客户端代码是通过wsimport命令生成,也可以通过Maven插件jaxws-maven-plugin
来生成Web Service客户端Java代码。
在pom.xml中配置插件:
<plugin> <groupId>org.jvnet.jax-ws-commons</groupId> <artifactId>jaxws-maven-plugin</artifactId> <version>2.3</version> <configuration> <packageName>com.xxg.wsclient</packageName> <sourceDestDir>src\main\java</sourceDestDir> <wsdlUrls> <wsdlUrl> http://localhost:8080/helloWorld?wsdl </wsdlUrl> </wsdlUrls> </configuration> </plugin>
新版本的jaxws-maven-plugin
插件groupId是org.jvnet.jax-ws-commons
,而老版本的groupId是org.codehaus.mojo
,这里选用的是目前最新版本2.3。
配置好插件后,运行Maven指令:
mvn jaxws:wsimport
也可以很方便的生成Web Service客户端Java代码。
整合Spring框架
Spring框架提供了对Web Service客户端良好的支持,可以通过Spring来配置和管理Web Service客户端。
<bean id="webservice" class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean"> <property name="serviceInterface" value="com.xxg.wsclient.HelloWorld" /> <property name="wsdlDocumentUrl" value="http://localhost:8080/helloWorld?wsdl" /> <property name="namespaceUri" value="http://wsserver.xxg.com/" /> <property name="serviceName" value="HelloWorldService" /> <property name="portName" value="HelloWorldPort" /> </bean>
以上配置项中,serviceInterface
指定生成的代码中对应的Class,wsdlDocumentUrl
执行WSDL路径,namespaceUri
、serviceName
、portName
都可以在WSDL文件中找到。org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean
需要依赖包spring-web.jar
。
运行下面对Spring管理的Web Service客户端进行测试:
public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); HelloWorld helloWorld = context.getBean("webservice", HelloWorld.class); System.out.println(helloWorld.sayHello("xxg")); // 输出"Hello xxg" }
相关推荐
CXF是一个开源框架,主要用于构建和部署SOAP和RESTful Web服务,Spring则是一个广泛应用的Java企业级开发框架,而Maven是项目管理和集成工具,负责构建、依赖管理和项目信息管理。本实例将展示如何利用这三者来搭建...
3. **部署服务**:利用Maven的`jaxws-maven-plugin`插件生成服务端点(SEI,Service Endpoint Interface)的WSDL(Web Service Description Language)文件,并部署到应用服务器。 4. **创建客户端**:使用`wsimport...
最后,通过Maven的cxf-codegen-plugin插件生成客户端和服务端的Stubs,并运行项目。访问指定的URL(如http://localhost:8080/hello?wsdl),就可以看到服务的WSDL描述。 【标签】"cxf"和"spring"表明这个项目主要...
3. Eclipse IDE 或 IntelliJ IDEA:Java开发集成环境。 接下来,按照以下步骤创建一个简单的CXF结合Spring的Java WebService: 1. **创建Maven项目**:在Eclipse或IntelliJ中创建一个新的Maven项目,并在`pom.xml`...
标题 "cxf+spring=webservice CXF 应用开发" 暗示了我们将讨论如何结合Apache CXF和Spring框架来创建Web服务。Apache CXF是一个开源的Java框架,主要用于构建和部署SOAP和RESTful Web服务。Spring框架则是一个广泛...
客户端可以通过多种方式调用服务器发布的Web服务,例如使用CXF的wsdl2java工具生成客户端代理类,或者直接使用SOAP请求库。以CXF生成客户端代码为例: 1. 通过CXF wsdl2java工具生成客户端代码: ``` mvn cxf-...
5. **运行和测试**:使用Maven的`cxf-codegen-plugin`插件生成客户端代理类,然后在客户端代码中调用这些代理方法来访问Web服务。此外,可以通过CXF提供的`cxf-servlet`在Tomcat等Servlet容器中部署你的服务,然后...
创建一个名为`spring-ws.xml`的配置文件,用于配置Spring与CXF的整合。这个文件通常包含在Spring的配置上下文中,这里我们需要配置CXF的JAX-WS支持: ```xml <?xml version="1.0" encoding="UTF-8"?> ...
CXF(CXF: Apache CXF)是一款开源的Java框架,主要用于构建和开发服务导向架构(Service-Oriented Architecture, SOA)应用。它提供了一种简单且强大的方式来实现Web服务,包括SOAP(Simple Object Access Protocol...
**CXF入门实例详解** Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。...这只是一个起点,CXF还支持更高级的功能,如安全、MTOM、Spring集成等,为开发复杂的Web服务提供了强大的支持。
此外,CXF还提供了强大的工具集,如CXF wsdl2java和cxf-codegen-plugin,用于生成服务端和客户端代码。 总结,Apache CXF是一个强大且灵活的Web服务框架,它简化了服务端Web服务的开发过程。通过理解上述步骤,你...
这个插件创建了新的基于Maven的JAX WS项目,并支持Spring,JPA,Hibernate和SLF4J。 插件创建3个项目-main,-core,-webdeploy。 Main是-core和-webdeploy的父项目。 用户可以在主项目上调用所有maven构建命令。 ...