`
network-eagle
  • 浏览: 58031 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

用xfire开发webservice

阅读更多
最近这一周一直在做webservice。用xfire和spring结合做的。开始遇见很多问题。这里得谢谢阿敏司令给的一些提示。在这里给出一个demo主要是客户端传pojo里面在封装list这样的大对像。部署spring和xfire的环境是很简单的 修改web.xml
  <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/xfire-servlet.xml
</param-value>
</context-param>
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>xfire</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
增加xfire-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
<import resource="applicationContext.xml"/>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<!-- 配置 service 名称和 Service Bean -->
<!--  -->
<entry key="/UserService.ws">                    
<ref bean="userService" />                
</entry>

</map>
</property>
</bean>
<bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">
       <property name="serviceFactory"  >
        <ref bean="xfire.serviceFactory"/>
       </property>
      
       <property name="xfire" >
       <ref bean="xfire"/>
       </property>
    </bean>
<!--  测试用的-->
<bean id="userService" parent="baseWebService">
       <property name="serviceBean"  >
       <ref bean="userbean"/>
       </property>
       <property name="serviceClass" >
       <value>test.service.Userservice</value>
       </property>
    </bean>
    
</beans>
配置applicationcontext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans >

<!-- -->
<bean id="userbean" class="test.service.imp.UserserviceImp"></bean>

</beans>
配置client.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- anthor zhangkt -->
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans >
<!-- 获取用户信息的例子  测试   -->
     <bean id="testUserWebService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean" lazy-init="true">
       <property name="serviceClass">           
         <value>test.service.Userservice</value>
       </property>     
        <property name="wsdlDocumentUrl">        
<value>http://127.0.0.1:8080/Test/services/UserService.ws?wsdl</value>      
        </property>     
     </bean>
</beans>
java文件
package test;

import java.util.List;

public class UserList  implements java.io.Serializable{
private User user;

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}
private List <User> u;

public List<User> getU() {
return u;
}

public void setU(List<User> u) {
this.u = u;
}
}
package test;

public class User {
private String age;
private String longName;

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public String getLongName() {
return longName;
}

public void setLongName(String longName) {
this.longName = longName;
}
}

package test.service;


import java.util.List;
import test.UserList;
import test.User;

public interface Userservice {
    public String createUser(UserList userList);
    public String  getLi();
    public void ListUser(UserList u);
}
package test.service.imp;

import test.service.Userservice;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import test.User;
import test.UserList;

public class UserserviceImp implements Userservice{



    public String createUser(UserList userList) {
    User user=userList.getUser();
    System.out.println(user.getLongName());
       return "1";
    }

public String getLi( ) {
// TODO Auto-generated method stub
return "12";
}

public void ListUser(UserList u) {
// TODO Auto-generated method stub
List <User> li=u.getU();
for(User user:li){
System.out.println(user.getLongName());
}
}



   
}
主要注意序列化和jdk1.5的特性。1.4的还没去研究



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics