>  기사  >  데이터 베이스  >  myeclipse에서 spring+mybatis+axis2 게시 웹 서비스 인터페이스 관련 문제

myeclipse에서 spring+mybatis+axis2 게시 웹 서비스 인터페이스 관련 문제

巴扎黑
巴扎黑원래의
2017-06-23 11:09:341059검색

전제:

이번 달 어느 날 갑자기 axis2에서 게시한 인터페이스를 사용해야 하는 프로젝트가 발생했습니다. 이로 인해 이전에는 웹 서비스 인터페이스를 게시하는 방법도 몰랐습니다. 나중에 첫 번째 인터페이스인 sayHi()가 HelloWorld에서 출시되었습니다. 지금까지는 모든 것이 순조롭게 진행되었지만 axis2와 통합할 때만 문제가 발생했습니다. null이었는데, 이 기간 동안 정상적인 프로세스에 따라 요청을 실행하려고 테스트를 했는데, axis2와 통합한 후에는 작동하지 않더군요. 매우 고통스럽습니다. dao 및 싱글톤 모드 강제 획득을 포함하여 상상할 수 있는 모든 방법을 하나씩 시도했지만 아무것도 작동하지 않습니다. 그래서 차선책을 선택해야 했습니다. 먼저 spring+mybatis+cxf를 사용하여 사용 가능한 인터페이스를 프록시로 게시한 다음 axis2 상자를 사용하여 프로젝트 도킹을 달성하기 위해 프록시를 호출하는 별도의 방법을 게시했습니다. spring+mybatis+cxf부터 시작해보자:

1. 프로젝트 디렉터리를 생성한다:

먼저, 엔터티 클래스인 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를 작성해보자. 주로 간단한 추가, 삭제, 수정 및 쿼리

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 }

이고, 그 다음에는 서비스 레이어 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); 
}

다음은 서비스 계층의 구현 클래스인 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);  
    }  
  
}

그리고 우리가 게시하려는 서비스 인터페이스인 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 게시 웹 서비스 인터페이스 관련 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.