1、下载包http://cxf.apache.org/download.html
2、在Eclipse中创建一个web项目,把上面解压后的jar包全部拷贝到WEB-INF/lib下。
3、JavaBean类
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String pwd;
public String getName() {
return name;
}
public String getPwd() {
return pwd;
}
public void setName(String name) {
this.name = name;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
4、UserService接口
@WebService
public interface UserService {
public User getUser(@WebParam(name="name")String name, @WebParam(name="pwd")String pwd);
public List<User> getUsers();
}
5、UserService实现类
@WebService(endpointInterface="cn.com.cncloud.UserService", serviceName="userServiceImpl")
public class UserServiceImpl implements UserService {
@Override
public User getUser(String name, String pwd) {
User user = new User();
user.setName(name);
user.setPwd(pwd);
return user;
}
@Override
public List<User> getUsers() {
User u1 = new User();
u1.setName("HanMeiMei");
u1.setPwd("123456");
User u2 = new User();
u2.setName("LiLei");
u2.setPwd("123456");
List<User> list = new ArrayList<User>();
list.add(u1);
list.add(u2);
return list;
}
}
6、测试类
public class ServerTest {
public static void main(String[] args) {
UserService userService = new UserServiceImpl();
Endpoint.publish("http://localhost:8080/userServiceImpl", userService);
}
}
7、由于CFX自带了一个轻量级的Spring容器提供IOC服务,我们可以先启动测试部署是否成功,直接运行Test类
8、在浏览器中输入http://localhost:8080/userServiceImpl?wsdl,浏览器显示以下内容:
\u2212
<wsdl:definitions name="userServiceImpl" targetNamespace="http://cncloud.com.cn/">
\u2212
<wsdl:types>
\u2212
<xs:schema elementFormDefault="unqualified" targetNamespace="http://cncloud.com.cn/" version="1.0">
<xs:element name="getUser" type="tns:getUser"/>
<xs:element name="getUserResponse" type="tns:getUserResponse"/>
<xs:element name="getUsers" type="tns:getUsers"/>
<xs:element name="getUsersResponse" type="tns:getUsersResponse"/>
\u2212
<xs:complexType name="getUser">
\u2212
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string"/>
<xs:element minOccurs="0" name="pwd" type="xs:string"/>
</xs:sequence>
</xs:complexType>
\u2212
<xs:complexType name="getUserResponse">
\u2212
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:user"/>
</xs:sequence>
</xs:complexType>
\u2212
<xs:complexType name="user">
\u2212
<xs:sequence>
<xs:element minOccurs="0" name="name" type="xs:string"/>
<xs:element minOccurs="0" name="pwd" type="xs:string"/>
</xs:sequence>
</xs:complexType>
\u2212
<xs:complexType name="getUsers">
<xs:sequence/>
</xs:complexType>
\u2212
<xs:complexType name="getUsersResponse">
\u2212
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="tns:user"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
\u2212
<wsdl:message name="getUsers">
<wsdl:part element="tns:getUsers" name="parameters">
</wsdl:part>
</wsdl:message>
\u2212
<wsdl:message name="getUserResponse">
<wsdl:part element="tns:getUserResponse" name="parameters">
</wsdl:part>
</wsdl:message>
\u2212
<wsdl:message name="getUser">
<wsdl:part element="tns:getUser" name="parameters">
</wsdl:part>
</wsdl:message>
\u2212
<wsdl:message name="getUsersResponse">
<wsdl:part element="tns:getUsersResponse" name="parameters">
</wsdl:part>
</wsdl:message>
\u2212
<wsdl:portType name="UserService">
\u2212
<wsdl:operation name="getUser">
<wsdl:input message="tns:getUser" name="getUser">
</wsdl:input>
<wsdl:output message="tns:getUserResponse" name="getUserResponse">
</wsdl:output>
</wsdl:operation>
\u2212
<wsdl:operation name="getUsers">
<wsdl:input message="tns:getUsers" name="getUsers">
</wsdl:input>
<wsdl:output message="tns:getUsersResponse" name="getUsersResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
\u2212
<wsdl:binding name="userServiceImplSoapBinding" type="tns:UserService">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
\u2212
<wsdl:operation name="getUser">
<soap:operation soapAction="" style="document"/>
\u2212
<wsdl:input name="getUser">
<soap:body use="literal"/>
</wsdl:input>
\u2212
<wsdl:output name="getUserResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
\u2212
<wsdl:operation name="getUsers">
<soap:operation soapAction="" style="document"/>
\u2212
<wsdl:input name="getUsers">
<soap:body use="literal"/>
</wsdl:input>
\u2212
<wsdl:output name="getUsersResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
\u2212
<wsdl:service name="userServiceImpl">
\u2212
<wsdl:port binding="tns:userServiceImplSoapBinding" name="UserServiceImplPort">
<soap:address location="http://localhost:8080/userServiceImpl"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
9、客户端访问服务
public class ClientTest {
public static void main(String[] args) {
JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();
svr.setServiceClass(UserService.class);
svr.setAddress("http://localhost:8080/userServiceImpl");
UserService us = (UserService)svr.create();
User user = us.getUser("Jack", "123");
System.out.println(user.getName());
}
}
集成Spring
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String pwd;
public String getName() {
return name;
}
public String getPwd() {
return pwd;
}
public void setName(String name) {
this.name = name;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
@WebService
public interface UserService {
public User getUser(@WebParam(name="name")String name, @WebParam(name="pwd")String pwd);
public List<User> getUsers();
}
public class UserServiceImpl implements UserService {
@Override
public User getUser(String name, String pwd) {
User user = new User();
user.setName(name);
user.setPwd(pwd);
return user;
}
@Override
public List<User> getUsers() {
User u1 = new User();
u1.setName("HanMeiMei");
u1.setPwd("123456");
User u2 = new User();
u2.setName("LiLei");
u2.setPwd("123456");
List<User> list = new ArrayList<User>();
list.add(u1);
list.add(u2);
return list;
}
}
public class ClientSpringTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService us = (UserService)context.getBean("userServiceImplClient");
User user = us.getUser("Jack", "111111");
System.out.println(user.getName());
System.out.println(user.getPwd());
}
}
Spring配置文件(这里为了简单,把客户端配置和服务器配置放在一起,实际开发中,这里分开为两个文件)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"
default-lazy-init="true">
<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<!-- 服务器端配置 -->
<jaxws:endpoint id="userServiceImpl"
implementor="cn.com.cncloud.UserServiceImpl"
address="/userServiceImpl" />
<!-- 客户端配置 -->
<jaxws:client id="userServiceImplClient"
serviceClass="cn.com.cncloud.UserService"
address="http://localhost:8080/WSSpring/userServiceImpl" />
</beans>
web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>WSSpring</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
分享到:
相关推荐
《CFX实例——弯管分析》是一篇关于使用CFX软件进行流体力学与传热问题分析的教程,特别关注于弯管流动的模拟。CFX是ANSYS公司开发的一款高级计算流体动力学(CFD)软件,广泛应用于工程领域,如航空航天、汽车制造...
3. **案例分析**:提供多个实例,可能涵盖从简单到复杂的流体力学问题,如平直翼的气动特性分析、泵的性能评估、燃烧室内的燃烧模拟等。每个案例会逐步引导用户完成模型建立、网格生成、求解过程和结果后处理。 4. ...
总的来说,"CFX基础教程"将引导初学者逐步进入CFX的世界,通过实例学习,使用户能够独立完成简单的流体力学问题的模拟。随着对CFX的深入理解和实践,用户将能够解决更为复杂的问题,为工程设计提供有力的辅助决策...
通过上述知识点的详细介绍,我们可以看到CFX不仅是一个强大的流体力学分析工具,而且对于不同领域的应用都有广泛的覆盖,从简单的流体流动分析到复杂的多物理场耦合问题,都能提供有效的解决方案。
这些实例可能涵盖从简单流动问题(如二维通道流)到复杂的工业应用(如涡轮机械或燃烧室)。用户将按照步骤操作,从建立几何模型、生成网格、设置物理模型到最后的求解和结果后处理,全过程都会得到详细的指导。 在...
CXF提供了丰富的API和工具,使得开发Web服务变得简单易行。 2. **Spring集成**: Spring框架以其模块化和松耦合的特性,与CXF的集成使得Web服务的生命周期管理变得更加便捷。Spring可以用来管理CXF的服务端点,...
举例说明,一个简单的CFX-post session批处理文件可能包含: ``` !$numsteps=10; !for($i=0;$i<$numsteps;$i++){ !$trans=($i+1)/$numsteps; BOUNDARY:in Visibility=1 Transparency=$trans END BOUNDARY:out ...
通过提供的"实例_pointwise学习实例_",用户可以逐步学习如何应用这些功能,从简单的几何到复杂的形状,逐步掌握Pointwise的使用技巧。每个实例通常会涵盖一个特定的主题,如网格划分策略、边界处理或特定几何的网格...
的简单用法 - wsdl2java 组件和练习。 内容 转换 wsdl2java 你可以找到这个例子 使用这个 pom,您可以从 WSDL 生成 java 客户端服务代码。 路径 是 WSDL 位置的属性,可以是在线或本地源。 要执行此操作,您可以将其...
通过这个简单的振动板例子,用户将掌握如何在ANSYS Workbench中设置和运行流固耦合分析,以及如何同时后处理来自两个解算器的结果,从而深入理解流体与固体间的两向交互效应。此教程涵盖了从工作目录设置到结果解释...
在这个"ICEM CFD结构网格划分的视频实例"中,演示了如何使用ICEM CFD的基本功能来创建一个简单的2D结构网格。尽管例子中的网格非常基础,但其展示了实际操作中的关键步骤,这些步骤对于理解和应用到更复杂的2D网格...
7. **调用服务**:在客户端代码中,实例化服务代理,调用`sayHello()`方法,通过SOAP请求向服务器发送请求,并接收返回的“Hello World”消息。 标签 "源码" 和 "工具" 提示我们,这篇博客可能涵盖了实际的代码示例...
【WebService详解】 WebService是一种基于XML的Web应用程序接口标准,它允许不同的系统和服务之间进行互操作,通过HTTP协议...这些内容对于理解和实践WebService开发具有重要价值,为开发者提供了丰富的实例和指南。
这款软件以其高效、灵活的网格划分能力著称,能够处理从简单几何到高度复杂几何的建模任务。 **ICEM CFD的主要功能** 1. **几何导入与修复**:支持多种CAD格式的导入,如IGES、STEP、STL等,同时具备修复几何缺陷...
- 最后,生成网格,并将网格导出至相应的求解器(如 Fluent 或 CFX)中。 - **用户界面**: - 提供直观的图形用户界面(GUI),便于用户操作和管理项目。 - 包含多种工具栏和菜单选项,支持快速访问常用功能。 ...
在这个示例中,"testClient"可能包含了客户端的代码,而"cfx-new"可能包含了与Apache CXF相关的配置文件或者服务端启动脚本。通过运行这些文件,你可以本地测试Web服务的客户端和服务端功能。 总结: Java中的Web...
FLUENT作为ANSYS软件的一部分,是全球广泛使用的流体动力学求解器,它可以处理从简单到复杂的流体流动问题,包括稳态和瞬态流动、层流和湍流、热传导和辐射等。 标签"ansys Workbench fluent"进一步明确了讨论的...
本示例指南提供了一组简单的示例,演示了FEKO套件的特性选择。 这些示例被选择来说明这些特性,而不需要不必要的复杂或需要过长的运行时间。 示例的输入文件可以在FEKO安装下的示例/ExampleGuide_models目录中找到。...
本教程通过一个简单的振荡板例子来演示如何设置并运行包含双向流体-结构交互的仿真。在此类仿真中,流体物理是在ANSYS CFX中求解,而固体物理则是在有限元分析软件ANSYS中求解。为了准确地模拟流体与固体之间的相互...
在提供的描述中,“cfx webservice小例子完整代码 包含jar包 下载可用”,意味着这是一个包含示例代码和所需依赖库的压缩包。"apache-cxf-2.1.2.zip"文件很可能是Apache CXF 2.1.2版本的完整库,包含了运行和开发CXF...