您好,欢迎访问一九零五行业门户网

myeclipse上spring+mybatis+axis2发布webservice接口的问题

前提:
       这个月的突然一天,有个项目对接需要使用axis2发布的接口,这下难倒我了,毕竟之前我是连webservice接口都不知怎么发布的。后来从helloworld开始发布了第一个接口--sayhi();到这一步的时候都是很顺利的,唯独和axis2整合的时候,出现问题了,spring的dao层在axis2发布后的接口里,一直为null,貌似是spring一直没有被初始化,这期间我测试过按照正常流程来执行一个请求,是正确的,唯独和axis2整合后就不行了,在这测试的时间内,很痛苦,很痛苦,所有能想到的方法都一一试过了,包括强制获取dao和单例模式,然而然并卵。于是只好退而求其次,先用spring+mybatis+cxf发布一个可以使用的接口作为代理,再用axis2框子单独发布一个调用代理的方法来达到项目对接。下面开始介绍spring+mybatis+cxf:
     一,创建工程目录:
首先,我们建一个实体类person.java
package com.srit.user.model;public class person {private string id;  private string name;  private int age;  private string birthday;  private double hight;  public string getid() {  return id;       }  public void setid(string id) {  this.id = id;       }  public string getname() {  return name;       }  public void setname(string name) {  this.name = name;       }  public int getage() {  return age;       }  public void setage(int age) {  this.age = age;       }  public string getbirthday() {  return birthday;       }  public void setbirthday(string birthday) {  this.birthday = birthday;       }  public double gethight() {  return hight;       }  public void sethight(double hight) {  this.hight = hight;       }   }
接着我们先来写dao里的persondao.java,它是个接口interface ,主要是执行简单的增,删,改,查
package com.srit.user.dao;import java.util.list;import javax.jws.webmethod;import javax.jws.webservice;import com.srit.user.model.person;public interface persondao {public void insertperson(person person);  public void updateperson(person person);  public list<person> findperson(string name);  public void deleteperson(string id);   }
下面是dao层的实现类persondaoimpl.java
 1 package com.srit.user.dao.impl; 2  3 import java.util.list; 4  5 import javax.annotation.resource; 6  7 import org.mybatis.spring.sqlsessiontemplate; 8 import org.mybatis.spring.support.sqlsessiondaosupport; 9 10 import com.srit.user.dao.persondao;11 import com.srit.user.model.person;12 13 public class persondaoimpl extends sqlsessiondaosupport implements persondao {14 15     private sqlsessiontemplate sqlsessiontemplate;   16     17     public sqlsessiontemplate getsqlsessiontemplate() {   18         return sqlsessiontemplate;   19     }   20   21     @resource(name=sqlsessiontemplate)     22     public void setsqlsessiontemplate(sqlsessiontemplate sqlsessiontemplate) {   23         this.sqlsessiontemplate = sqlsessiontemplate;   24     }   25   26     public void deleteperson(string id) {   27         getsqlsession().delete(com.srit.usr.dao.persondao.deleteperson, id);   28     }   29   30     public list<person> findperson(string name) {   31         return getsqlsession().selectlist(com.srit.user.dao.persondao.findperson, name);   32     }   33   34     public void insertperson(person person) {   35         getsqlsession().insert(com.srit.user.dao.persondao.insertperson, person);   36     }   37   38     public void updateperson(person person) {   39         getsqlsession().update(com.srit.user.dao.persondao.updateperson, person);   40     }   41   42 43 }
接着是service层personservice.java
package com.srit.user.service;import java.util.list;import com.srit.user.model.person;public interface personservice {public void insertperson(person person);  public void updateperson(person person);  public list<person> findperson(string name);  public void deleteperson(string id);  }
紧接着便是service层的实现类了personserviceimpl.java
package com.srit.user.service.impl;import java.util.list;import javax.annotation.resource;import org.springframework.stereotype.service;import org.springframework.transaction.annotation.transactional;import org.springframework.web.context.contextloader;import org.springframework.web.context.webapplicationcontext;import com.srit.user.dao.persondao;import com.srit.user.model.person;import com.srit.user.service.personservice; @service   @transactional   public class personserviceimpl implements personservice {              @resource  private persondao persondao;         public persondao getpersondao() {  return persondao;       }  public void setpersondao(persondao persondao) {  this.persondao = persondao;   //        webapplicationcontext context=contextloader.getcurrentwebapplicationcontext();//        persondao =(persondao)context.getbean(persondao);    }     public void deleteperson(string id) {           persondao.deleteperson(id);       }     public list<person> findperson(string name) {  return persondao.findperson(name);       }     public void insertperson(person person) {           persondao.insertperson(person);       }     public void updateperson(person person) {           persondao.updateperson(person);       }      }
然后就是我们要发布的service接口了mywebservice.java
1 package com.srit.user.webservice;2 3 import com.srit.user.model.person;4 5 public interface mywebservice {6     public string czdate(person person);  7 }
当然必须有它的实现类mywebserviceimpl.java
下班了  。。。下次接着写
以上就是myeclipse上spring+mybatis+axis2发布webservice接口的问题的详细内容。
其它类似信息

推荐信息