Prémisse :
Soudain, un jour de ce mois-ci, il y a eu un projet qui devait utiliser l'interface publiée par axis2. Cela m'a dérouté. Après tout, je ne savais même pas comment publier l'interface du service Web. avant. Plus tard, la première interface - sayHi() a été publiée par HelloWorld ; jusqu'à présent, tout s'est bien passé. Ce n'est que lors de l'intégration avec axis2 qu'il y a eu un problème dans l'interface après la sortie de axis2. été nul, il semble que spring n'ait pas été initialisé. Pendant cette période, j'ai testé pour exécuter une requête selon le processus normal, et cela n'a pas fonctionné après l'intégration avec axis2. très douloureux. C'est très douloureux. J'ai essayé toutes les méthodes imaginables une à une, y compris l'acquisition forcée du mode dao et singleton, mais rien ne fonctionne. J'ai donc dû me contenter de la meilleure chose suivante, utiliser d'abord spring+mybatis+cxf pour publier une interface utilisable en tant que proxy, puis utiliser la boîte axis2 pour publier une méthode distincte pour appeler le proxy afin de réaliser l'amarrage du projet. Commençons par spring+mybatis+cxf :
1. Créez le répertoire du projet :
Tout d'abord, nous construisons une classe d'entité 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; } }
Ensuite, écrivons d'abord PersonDao.java en dao. C'est une interface qui effectue principalement des ajouts, des suppressions, des modifications et des requêtes simples
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); }
Voici la classe d'implémentation de la couche 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 }
suivie de la couche de 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); }
Ensuite, il y a la classe d'implémentation de la couche de 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); } }
Ensuite, il y a l'interface de service que nous souhaitons publier, 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 }
Bien sûr, il doit avoir sa classe d'implémentation MyWebserviceImpl.java
Après avoir quitté le travail. . . La prochaine fois j'écrirai
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!