明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

myeclipse上spring+mybatis+axis2公布webservice接口的問(wèn)題

[摘要]前提: 這個(gè)月的突然一天,有個(gè)項(xiàng)目對(duì)接需要使用axis2發(fā)布的接口,這下難倒我了,畢竟之前我是連webservice接口都不知怎么發(fā)布的。后來(lái)從HelloWorld開(kāi)始發(fā)布了第一個(gè)接口--sayHi();到這一步的時(shí)候都是很順利的,唯獨(dú)和axis2整合的時(shí)候,出現(xiàn)問(wèn)題了,spring的...
前提:

這個(gè)月的突然一天,有個(gè)項(xiàng)目對(duì)接需要使用axis2發(fā)布的接口,這下難倒我了,畢竟之前我是連webservice接口都不知怎么發(fā)布的。后來(lái)從HelloWorld開(kāi)始發(fā)布了第一個(gè)接口--sayHi();到這一步的時(shí)候都是很順利的,唯獨(dú)和axis2整合的時(shí)候,出現(xiàn)問(wèn)題了,spring的dao層在axis2發(fā)布后的接口里,一直為null,貌似是spring一直沒(méi)有被初始化,這期間我測(cè)試過(guò)按照正常流程來(lái)執(zhí)行一個(gè)請(qǐng)求,是正確的,唯獨(dú)和axis2整合后就不行了,在這測(cè)試的時(shí)間內(nèi),很痛苦,很痛苦,所有能想到的方法都一一試過(guò)了,包括強(qiáng)制獲取dao和單例模式,然而然并卵。于是只好退而求其次,先用spring+mybatis+cxf發(fā)布一個(gè)可以使用的接口作為代理,再用axis2框子單獨(dú)發(fā)布一個(gè)調(diào)用代理的方法來(lái)達(dá)到項(xiàng)目對(duì)接。下面開(kāi)始介紹spring+mybatis+cxf:

一,創(chuàng)建工程目錄:

myeclipse上spring+mybatis+axis2發(fā)布webservice接口的問(wèn)題

首先,我們建一個(gè)實(shí)體類(lèi)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;  
    }  
}

接著我們先來(lái)寫(xiě)dao里的PersonDao.java,它是個(gè)接口interface ,主要是執(zhí)行簡(jiǎn)單的增,刪,改,查

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層的實(shí)現(xiàn)類(lèi)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層的實(shí)現(xiàn)類(lèi)了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);  
    }  
  
}

然后就是我們要發(fā)布的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 }

當(dāng)然必須有它的實(shí)現(xiàn)類(lèi)MyWebserviceImpl.java

下班了 。。。下次接著寫(xiě)

以上就是myeclipse上spring+mybatis+axis2發(fā)布webservice接口的問(wèn)題的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。