myeclipse上spring+mybatis+axis2公布webservice接口的問題
發(fā)表時間:2023-09-03 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]前提: 這個月的突然一天,有個項目對接需要使用axis2發(fā)布的接口,這下難倒我了,畢竟之前我是連webservice接口都不知怎么發(fā)布的。后來從HelloWorld開始發(fā)布了第一個接口--sayHi();到這一步的時候都是很順利的,唯獨和axis2整合的時候,出現(xiàn)問題了,spring的...
前提:
這個月的突然一天,有個項目對接需要使用axis2發(fā)布的接口,這下難倒我了,畢竟之前我是連webservice接口都不知怎么發(fā)布的。后來從HelloWorld開始發(fā)布了第一個接口--sayHi();到這一步的時候都是很順利的,唯獨和axis2整合的時候,出現(xiàn)問題了,spring的dao層在axis2發(fā)布后的接口里,一直為null,貌似是spring一直沒有被初始化,這期間我測試過按照正常流程來執(zhí)行一個請求,是正確的,唯獨和axis2整合后就不行了,在這測試的時間內(nèi),很痛苦,很痛苦,所有能想到的方法都一一試過了,包括強制獲取dao和單例模式,然而然并卵。于是只好退而求其次,先用spring+mybatis+cxf發(fā)布一個可以使用的接口作為代理,再用axis2框子單獨發(fā)布一個調(diào)用代理的方法來達到項目對接。下面開始介紹spring+mybatis+cxf:
一,創(chuàng)建工程目錄:

首先,我們建一個實體類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 ,主要是執(zhí)行簡單的增,刪,改,查
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層的實現(xiàn)類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層的實現(xiàn)類了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 }
當然必須有它的實現(xiàn)類MyWebserviceImpl.java
下班了 。。。下次接著寫
以上就是myeclipse上spring+mybatis+axis2發(fā)布webservice接口的問題的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
學習教程快速掌握從入門到精通的SQL知識。