最近学校WebService的CXF..做了一个示例程序是 CXF+Struts+spring的...
有用的就看看.没用的就飘过!
1:类的编写(bean):
@XmlRootElement(name="customer")
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(propOrder={"name","age"})
public class Customer {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
2:Service的编写:
@WebService
public interface HelloService {
public void save(Customer c1,Customer c2);
public void test(String args);
public Customer get(int id);
}
HelloServiceImpl:
@WebService
public class HelloServiceImpl implements HelloService {
public Customer get(int id) {
Customer cus=new Customer();
cus.setAge(100);
cus.setName("LLLL");
return cus;
}
public void save(Customer c1, Customer c2) {
System.out.println(c1.getAge()+"-------"+c2.getAge());
System.out.println(c1.getName()+"-------"+c2.getName());
}
public void test(String args) {
System.out.println(args);
}
3:spring配置..发布节点:
<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" />
<bean id="Customer" class="org.web.HelloServiceImpl"></bean>
<jaxws:endpoint
id="custom"
implementor="#Customer"
address="/web" />
PS: web.xml配置:
<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>/web/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.web.StrutsFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
自己写的struts过滤器:
public class StrutsFilter extends FilterDispatcher {
public void init(FilterConfig filterConfig) throws ServletException {
super.init(filterConfig);
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
String url = ((HttpServletRequest)req).getRequestURI();
if (url.indexOf("fckeditor") < 0 && url.indexOf("web") < 0) {
super.doFilter(req, res, chain);
} else {
chain.doFilter(req, res);
}
}
}
PS:struts会过滤掉cxf..即cxf会被认为是一个action..所以无法查看发布:
所以我自己写了一个Filter如上
这样就可以避免不能查看了!!!呵呵...
服务端算是完成:可以测试下:http://127.0.0.1:88/Hello/web
可以看见如下内容:
4:客户端:
①:类的编写
action类的编写
@SuppressWarnings("serial")
public class SoapAction extends ActionSupport {
private HelloService hello;
public HelloService getHello() {
return hello;
}
public void setHello(HelloService hello) {
this.hello = hello;
}
public String test(){
Customer c1=new Customer();
c1.setAge(1);
c1.setName("one");
Customer c2=new Customer();
c2.setAge(2);
c2.setName("two");
hello.save(c1, c2);
hello.test("11111111111");
return "success";
}
}
struts的配置:
<action name="Test" method="test" class="test">
<result name="success">/index.jsp</result>
</action>
spring的配置(重点!!)
<bean id="webTest" class="org.web.HelloService" factory-bean="client" factory-method="create"/>
<bean id="client" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="org.web.HelloService"></property>
<property name="address" value="http://127.0.0.1:88/Hello/web/web"></property>
</bean>
<bean id="test" class="org.web.SoapAction" >
<property name="hello" ref="webTest"></property>
</bean>
好了发布测试:
http://127.0.0.1:88/Hello/Test.action
成功!!!
鼓掌!!!
代码已经上传!jar包由于过大的原因没有上传!
给了一个jar包的截图!!
相关推荐
这是个采用apache cxf实现webservice的示例,主要由spring整合hibernate、struts2实现webservice,里面struts2用到得较少……对于学习很有帮助,另外我觉得若是初学者,不过采用那方式,现在按照套方案做熟练后再去...
本实例"Spring+Hibernate+Struts+XFire的WebService"提供了一个全面的框架整合,用于创建功能丰富的Web服务。以下将详细解析这个实例所涉及的技术点: 1. **Spring框架**:Spring是一个开源的Java平台,它为开发...
5. **整合SSH框架**:在上述示例中,我们已经使用了Spring来配置CXF。接下来,可以利用Spring的AOP(面向切面编程)来处理用户认证。创建一个切面类,使用`@Before`注解拦截登录请求,检查用户凭证。同时,可以利用...
在SSH+CXF的整合中,Struts2负责视图层和控制层,Spring处理依赖注入和事务管理,Hibernate处理持久化操作,而CXF则作为Web服务的发布平台。这种组合使得开发人员能够利用SSH的成熟性和CXF的灵活性,轻松地创建和...
文件"java webservice CXF JAX-WS(SOAP) + JAX-RS(RESTfull).docx"可能包含了具体的示例代码和详细步骤,帮助理解如何在SSH环境中集成并使用CXF和JAX-RS。建议参考文档中的内容进行实践操作,以加深理解。 总的来说...
在IT行业中,Spring框架以其强大的依赖注入和面向切面...在提供的`md_demo`和`ssm_arch_demo`文件中,可能包含了Spring、CXF和Struts的示例代码和配置,通过阅读和理解这些代码,可以更好地理解和实践上述集成过程。
在SSH(Spring、Struts、Hibernate)架构中,我们需要配置Spring上下文以便CXF能够识别和处理Web服务。这通常涉及到在Spring配置文件中定义CXF的Bus实例、服务端点接口和服务实现。例如,我们会创建一个CXF的Servlet...
【SSH+CXF Webservices 完整版】项目是一个基于Spring、Struts、Hibernate和CXF的Web服务实现。这个项目提供了完整的源码和必要的库文件(jar包),旨在帮助开发者快速理解和部署一个使用CXF进行Web服务开发的示例。...
SSH CXF Webservice 开发是Java企业级应用中常见的服务集成和发布技术。SSH是指Spring、Struts和Hibernate这三个开源框架的组合,它们分别负责控制层、视图层和持久层的功能。CXF则是一个流行的Java Web服务实现,...
- **Web层**:Spring-Flex 1.0.3 (AMF)、Struts 2.3.15.1 (Service)、CXF 2.7.6 (WebService) - **Service层**:Spring 3.1 - **DAO层**:Hibernate 3.3 #### AMF通讯方式配置 为了实现Flex客户端与Java服务器端的...
- **WebService**:支持Apache CXF 2.2下的JAX-WS/JAXB 2.0规范,同时兼容基于Jersey的JAX-RS规范。 - **安全性**:采用Spring Security 3.0确保应用的安全性。 #### SpringSide安装步骤 1. **下载**:下载...
通过实践,开发者可以掌握如何使用这些基本技术来构建一个完整的系统,这对于进一步学习Spring、Struts等高级框架,以及深入理解Web服务的原理和实践都是一个很好的起点。同时,对于没有框架经验的初学者,这是一个...