myeclipse上spring+mybatis+axis2公布webservice接口的問(wèn)題
發(fā)表時(shí)間:2023-09-03 來(lái)源:明輝站整理相關(guān)軟件相關(guā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)建工程目錄:
首先,我們建一個(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í)。