zhb8015

posts(23) comments(6) trackbacks(0)
  • BlogJava
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • hadoop

随笔档案

  • 2013年3月 (1)
  • 2012年10月 (2)
  • 2012年8月 (2)
  • 2012年7月 (1)
  • 2012年6月 (1)
  • 2012年5月 (1)
  • 2012年4月 (5)

文章分类

  • arithmetc
  • books(2)
  • design patter(4)
  • English(1)
  • exception(3)
  • hadoop(1)
  • interview(53)
  • Kent Beck
  • linux,unix(1)
  • MartinFlow(7)
  • method(7)
  • middleware(1)
  • projectManagement(6)
  • soa(9)
  • ssh(14)
  • ThoughtWork(2)
  • tibco(13)

文章档案

  • 2013年4月 (1)
  • 2013年3月 (3)
  • 2012年8月 (1)
  • 2012年7月 (8)
  • 2012年6月 (15)
  • 2012年5月 (14)
  • 2012年4月 (22)
  • 2012年3月 (5)

相册

  • java

搜索

  •  

最新评论

  • 1. re: Log4j详细配置(转)
  • 写得很详细,最后那句好像有点小问题,输出到test1和stdout应该是log4j.logger.myTest1=DEBUG, test1, stdout ?
  • --aramxiao
  • 2. re: 结合Maven2进行J2EE项目构建(转)
  • 评论内容较长,点击标题查看
  • --最代码
  • 3. re: java深浅复制
  • 评论内容较长,点击标题查看
  • --zhb8015
  • 4. re: 求质数,难以理解的代码,有兴趣可以看一下
  • 评论内容较长,点击标题查看
  • --zhb8015
  • 5. re: Advice about migrating to new platfrom
  • platfrom or platform??
  • --qingyue

阅读排行榜

评论排行榜

View Post

xfire 与spring完整集成实例(转)


首先打开Myeclipse8.x以上版本..因为我这里共享那些xfire 项目所需要的jar都是Myeclipse自带添加的,所以要求大家伙准备好myeclipse8.x或者更高版本的..这里是spring2.0与xfire1.2整合..废话少说..转正正传..

 

1.打开Myeclipse--->new project-->项目名随便吧..最好是有意义的名称..看起来比较舒服..


2--配置web.xml

 

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">


  <context-param>

   <param-name>contextConfigLocation</param-name>

   <param-value>classpath:applicationContext.xml,classpath:org/codehaus/xfire/spring/xfire.xml</param-value>

  </context-param>


<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>


   <listener>

<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>

</listener>

  <servlet>

    <servlet-name>XFireServlet</servlet-name>

    <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>

    <load-on-startup>0</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>XFireServlet</servlet-name>

    <url-pattern>/services/*</url-pattern>

  </servlet-mapping>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

 


3.配置applicationContext.xml

 

<?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:p="http://www.springframework.org/schema/p"

xmlns:jee="http://www.springframework.org/schema/jee"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans

 http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

 http://www.springframework.org/schema/aop

 http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

 http://www.springframework.org/schema/tx

 http://www.springframework.org/schema/tx/spring-tx-2.0.xsd

 http://www.springframework.org/schema/jee

 http://www.springframework.org/schema/jee/spring-jee-2.0.xsd"

 default-autowire="byName" default-lazy-init="true"

 >

 <import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>

 <import resource="xfire-servlet.xml"/>

</beans>

 

 

 

 

4.配置xfire-servlet.xml

 

为了不给大家伙困扰.所以我这里用那个就打开那个配置..

 

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"

"http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>

<!-- 

<bean id="HellWorldSimple" class="org.codehaus.xfire.spring.ServiceBean">

<property name="name">

<value>HelloWorldSimple</value>

</property>

<property name="namespace">

<value>http://service.core.xfire.com</value>

</property>

<property name="serviceClass">

<value>com.xfire.core.service.IHelloWorld</value>

</property>

<property name="serviceBean">

<ref bean="HellWorldSimple"/>

</property>

</bean>

-->

<!-- 

  <bean id="MyHandle" class="org.codehaus.xfire.spring.ServiceBean">

<property name="name">

<value>MyHandle</value>

</property>

<property name="namespace">

<value>http://service.core.xfire.com</value>

</property>

<property name="serviceClass">

<value>com.xfire.core.handler.MyHandlerImpl</value>

</property>

<property name="serviceBean">

<ref bean="MyHandle"/>

</property>

</bean>

 -->



<bean id="UserInfoService" class="org.codehaus.xfire.spring.ServiceBean">

<property name="name">

<value>UserInfo</value>

</property>

<property name="namespace">

<value>http://service.core.xfire.com/UserInfoService</value>

</property>

<property name="serviceClass">

<value>com.xfire.core.service.IUserInfoService</value>

</property>

<property name="serviceBean">

<ref bean="UserInfoService"/>

</property>

</bean>

<!--  

   <bean id="ApplictionException" class="org.codehaus.xfire.spring.ServiceBean">

<property name="name">

<value>ApplictionException</value>

</property>


<property name="namespace">

<value>http://service.core.xfire.com/IMyExceptionSevice</value>

</property>

<property name="serviceClass">

<value>com.xfire.core.service.IMyExceptionSevice</value>

</property>

<property name="serviceBean">

<ref bean="ApplictionException"/>

</property>

</bean>

-->

 

 

 

 <!--  

   <bean id="IServiceMap" class="org.codehaus.xfire.spring.ServiceBean">

<property name="name">

<value>AddressService</value>

</property>


<property name="namespace">

<value>http://service.core.xfire.com/IServiceMap</value>

</property>

<property name="serviceClass">

<value>com.xfire.core.service.IServiceMap</value>

</property>

<property name="serviceBean">

<ref bean="IServiceMap"/>

</property>

</bean>

-->

 

</beans>


 

 

5.xfire-servlet.xml配置

 

 

<?xml version="1.0" encoding="UTF-8"?>

<beans>

<!--

    在没整合spring之前的xfire是这样的配置

  当要整合spring之后的这句代码复制到service 节点

  xmlns="http://xfire.codehaus.org/config/1.0"

  <beans xmlns="http://xfire.codehaus.org/config/1.0">

 -->

<service xmlns="http://xfire.codehaus.org/config/1.0">


 

 <name>UserInfo</name>

 <namespace>http://service.core.xfire.com</namespace>

 <serviceClass>com.xfire.core.service.IUserInfoService</serviceClass>

 <implementationClass>com.xfire.core.service.impl.UserInfoServiceImpl

 </implementationClass>

 <scope>request</scope>

 

 

<!-- 

<name>HelloWorldSimple</name>

<namespace>http://service.core.xfire.com</namespace>

<serviceClass>com.xfire.core.service.IHelloWorld</serviceClass>

<implementationClass>com.xfire.core.service.impl.HelloWorldImpl</implementationClass>

<style>wrapped</style>

<use>literal</use>

<scope>request</scope>

-->

<!--  

<name>MyHandle</name>

<namespace>http://service.core.xfire.com</namespace>

<serviceClass>com.xfire.core.handler.IMyHandler</serviceClass>

<implementationClass>com.xfire.core.handler.MyHandlerImpl</implementationClass>

<scope>application</scope>

 -->

 <!-- 

<name>ServiceMap</name>

<namespace>http://service.core.xfire.com</namespace>

<serviceClass>com.xfire.core.service.IServiceMap</serviceClass>

<implementationClass>com.xfire.core.service.impl.ServiceMapImpl

</implementationClass>

<scope>request</scope>

 -->

 

 

<!-- 

<name>ApplictionException</name>

<namespace>http://service.core.xfire.com</namespace>

<serviceClass>com.xfire.core.service.IMyExceptionSevice</serviceClass>

<implementationClass>com.xfire.core.service.impl.MyExceptionSeviceImpl</implementationClass>

<scope>request</scope>

-->

 

</service>

</beans>

 

 


实现代码..

首先新建一个实体类UseInfor

package com.xfire.core.entity;

 

import java.io.Serializable;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

 

/**

 *@author jilongliang

 *@Date 2012-2-29

 */

@SuppressWarnings("all")

public class UserInfo implements Serializable {

 

private Integer identifier;

 

private String address;

private String city;

private String proivice;

 

public Integer getIdentifier() {

return identifier;

}

 

public void setIdentifier(Integer identifier) {

this.identifier = identifier;

}

 

public String getAddress() {

return address;

}

 

public void setAddress(String address) {

this.address = address;

}

 

public String getCity() {

return city;

}

 

public void setCity(String city) {

this.city = city;

}

 

public String getProivice() {

return proivice;

}

 

public void setProivice(String proivice) {

this.proivice = proivice;

}

 

public String getCountry() {

return country;

}

 

public void setCountry(String country) {

this.country = country;

}

 

public String getPostCode() {

return postCode;

}

 

public void setPostCode(String postCode) {

this.postCode = postCode;

}

 

public String[] getArrary() {

return arrary;

}

 

public void setArrary(String[] arrary) {

this.arrary = arrary;

}

 

public List<Integer> getList() {

return list;

}

 

public void setList(List<Integer> list) {

this.list = list;

}

 

public Map<Integer, InnerClass> getMap() {

return map;

}

 

public void setMap(Map<Integer, InnerClass> map) {

this.map = map;

}

 

public boolean isExist() {

return isExist;

}

 

public void setExist(boolean isExist) {

this.isExist = isExist;

}

 

public InnerClass getInner() {

return inner;

}

 

public void setInner(InnerClass inner) {

this.inner = inner;

}

 

private String country;

private String postCode;

private String[] arrary;

private List<Integer> list;

 

private Map<Integer, InnerClass> map;

 

private boolean isExist;

private InnerClass inner;

 

public UserInfo() {

 

list = new ArrayList<Integer>();

list.add(1);

list.add(2);

list.add(3);

 

map = new HashMap<Integer, InnerClass>();

map.put(1, new InnerClass("a"));

map.put(2, new InnerClass("b"));

map.put(3, new InnerClass("c"));

 

inner = new InnerClass();

inner.setInnerName("服务器地址: Address InnerClass");

 

}

 

@Override

public String toString() {

return "Address [address=" + address + ", arrary="

+ Arrays.toString(arrary) + ", city=" + city + ", country="

+ country + ", identifier=" + identifier + ", inner=" + inner

+ ", isExist=" + isExist + ", list=" + list + ", map=" + map

+ ", postCode=" + postCode + ", proivice=" + proivice + "]";

}

 

}



----内置实体类
package com.xfire.core.entity;

import java.io.Serializable;

/**
 *@Project xfire
 *@author jilongliang
 *@Date 2012-2-29
 *@Class InnerClass.java
 */
@SuppressWarnings("all")
public class InnerClass implements Serializable {

private String innerName = "static InnerClass";

public String getInnerName() {
return innerName;
}

public void setInnerName(String innerName) {
this.innerName = innerName;
}

public InnerClass() {
}

public InnerClass(String innerName) {
super();
this.innerName = innerName;

}
}



其次一个接口类:
package com.xfire.core.service;

import java.util.List;

import com.xfire.core.entity.UserInfo;

/**
 *@author jilongliang
 *@Date 2012-2-29
 */
public interface IUserInfoService {
public List<UserInfo> getAddressList();

public List<UserInfo> setAddresses(List<UserInfo> list);
}



然后新建一个实现类去实现接口

package com.xfire.core.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.xfire.core.entity.UserInfo;
import com.xfire.core.service.IUserInfoService;

/**
 *@author jilongliang
 *@Date 2012-2-29
 */
public class UserInfoServiceImpl implements IUserInfoService {

private int requestCount = 0;

public List<UserInfo> getAddressList() {
requestCount++;
System.out.println("requestCount" + requestCount);
List<UserInfo> listAdd = new ArrayList<UserInfo>();
UserInfo address = new UserInfo();
address.setIdentifier(1);
address.setCountry("中國");
address.setProivice("廣東省");
address.setCity("陽江");
address.setAddress("廣東陽春");
address.setPostCode("1111111");
address.setExist(false);
address.setArrary(new String[] { "22", "23", "24" });
listAdd.add(address);

address.setIdentifier(2);
address.setCountry("中國");
address.setProivice("廣東省");
address.setCity("陽江");
address.setAddress("廣東陽春");
address.setPostCode("1111111");
address.setExist(false);
address.setArrary(new String[] { "a", "b", "c" });
listAdd.add(address);

return listAdd;
}

/**
 * 
 * @param list
 * @return
 */
public List<UserInfo> setAddresses(List<UserInfo> list) {
requestCount++;
System.out.println("requestCount" + requestCount);
return list;
}

}



-----客户端

package com.xfire.core.client;

import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;

import com.xfire.core.entity.UserInfo;
import com.xfire.core.service.IUserInfoService;

/**
 *@author jilongliang
 *@Date 2012-3-5
 * 
 */
public class UserInfoClient {

public static void main(String[] args) {
getServiceList();
setServiceList();
}

static String url = "http://localhost:8081/xfire/services/UserInfo";

/**
 * 
 */
public static void getServiceList() {
Service service = new ObjectServiceFactory()
.create(IUserInfoService.class);

try {
IUserInfoService iAddressService = (IUserInfoService) new XFireProxyFactory()
.create(service, url);
List<UserInfo> list = (ArrayList<UserInfo>) iAddressService
.getAddressList();

System.out.println("一共多少条数据:" + list.size());

for (Iterator<UserInfo> iter = list.iterator(); iter.hasNext();) {

UserInfo a = iter.next();

System.out.println(a);
}

} catch (MalformedURLException e) {
e.printStackTrace();
}
}

public static void setServiceList() {
Service service = new ObjectServiceFactory()
.create(IUserInfoService.class);

try {
IUserInfoService iAddressService = (IUserInfoService) new XFireProxyFactory()
.create(service, url);

List<UserInfo> listAdd = new ArrayList<UserInfo>();
UserInfo address = new UserInfo();
address.setIdentifier(1);
address.setCountry("中國");
address.setProivice("廣東省");
address.setCity("陽江");
address.setAddress("廣東陽春");
address.setPostCode("1111111");
address.setExist(false);
address.setArrary(new String[] { "22", "23", "24" });
listAdd.add(address);

address.setIdentifier(2);
address.setCountry("中國");
address.setProivice("廣東省");
address.setCity("陽江");
address.setAddress("廣東陽春");
address.setPostCode("1111111");
address.setExist(false);
address.setArrary(new String[] { "a", "b", "c" });
listAdd.add(address);

List<UserInfo> returnAdd = iAddressService.setAddresses(listAdd);

System.out.println("总数:" + returnAdd);

for (Iterator<UserInfo> it = returnAdd.iterator(); it.hasNext();) {
UserInfo address2 = it.next();

System.out.println(address2);
}

} catch (MalformedURLException e) {
e.printStackTrace();
}

}
}


图解----

 




 

 

 

 

 

 

 

 

 

 

 

 

子书下载http://download.csdn.net/detail/l_ji_l/4116804

源代码下载:http://download.csdn.net/detail/l_ji_l/4116788

posted on 2012-05-15 17:42 zhb8015 阅读(3917) 评论(0)  编辑  收藏 所属分类: soa

新用户注册  刷新评论列表  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问   管理
相关文章:
  • REST架构下的接口规范和使用准则( 转)
  • xfire 与spring完整集成实例(转)
  • java.lang.IllegalStateException: Could not find valid implementation for: 2.0
  • 理解AXIOM
  • axis2教程(转)
  • axis2插件安装
  • XFire 学习
 
 
Powered by:
BlogJava
Copyright © zhb8015