[SPRING] @WebService 봄 인식 방법
SPRING@WebService 봄 인식 방법
변수를 Autowire하려고하는 웹 서비스가 있습니다. 다음은 클래스입니다.
package com.xetius.isales.pr7.service;
import java.util.Arrays;
import java.util.List;
import javax.jws.WebService;
import org.springframework.beans.factory.annotation.Autowired;
import com.xetius.isales.pr7.domain.PR7Product;
import com.xetius.isales.pr7.domain.PR7Upgrade;
import com.xetius.isales.pr7.logic.UpgradeControllerInterface;
@WebService(serviceName="ProductRulesService",
portName="ProductRulesPort",
endpointInterface="com.xetius.isales.pr7.service.ProductRulesWebService",
targetNamespace="http://pr7.isales.xetius.com")
public class ProductRulesWebService implements ProductRulesWebServiceInterface {
@Autowired
private UpgradeControllerInterface upgradeController;
@Override
public List<PR7Product> getProducts() {
if (upgradeController == null) {
return Arrays.asList(new PR7Product("Fail"));
}
return upgradeController.getProducts();
}
@Override
public List<PR7Upgrade> getUpgrades() {
if (upgradeController == null) {
return Arrays.asList(new PR7Upgrade("Fail"));
}
return upgradeController.getUpgrades();
}
@Override
public List<PR7Product> getProductsForUpgradeWithName(String upgradeName) {
if (upgradeController == null) {
return Arrays.asList(new PR7Product("Fail"));
}
return getProductsForUpgradeWithName(upgradeName);
}
}
그러나 웹 서비스에 액세스하려고하면 failController가 반환됩니다. 즉, upgradeController가 자동 실행되고 있지 않습니다. 다음은 내 applicationContext입니다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.xetius.isales.pr7" />
<context:annotation-config />
<bean id="upgradeController" class="com.xetius.isales.pr7.logic.UpgradeController" />
</beans>
@WebService 클래스가 스프링을 인식하고 자동 와이어 링이 발생하도록 어떻게 만들 수 있습니까?
해결법
-
==============================
1.자동 와이어 링을 원하면 ProductRulesWebService가 SpringBeanAutowiringSupport를 확장해야합니다.
자동 와이어 링을 원하면 ProductRulesWebService가 SpringBeanAutowiringSupport를 확장해야합니다.
해당 클래스를 확장하면 UpgradeController를 자동으로 사용할 수 있습니다.
-
==============================
2.기본적으로 Spring을 지원하는 CXF와 같은 스택을 사용하면 기본적으로 다음과 같은 작업을 수행 할 수 있습니다.
기본적으로 Spring을 지원하는 CXF와 같은 스택을 사용하면 기본적으로 다음과 같은 작업을 수행 할 수 있습니다.
<bean id="aService" class="com.xetius.isales.pr7.service.ProductRulesWebService " /> <jaxws:endpoint id="aServiceEndpoint" implementor="#aService" address="/aService" />
-
==============================
3.컨테이너 버전이나 Spring에 따라 WSDL을 노출하기위한 쉬운 솔루션을 제공합니다.
컨테이너 버전이나 Spring에 따라 WSDL을 노출하기위한 쉬운 솔루션을 제공합니다.
@PostConstruct SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
from https://stackoverflow.com/questions/5041154/how-to-make-an-webservice-spring-aware by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 두 개 이상의 데이터 소스를 사용할 때 Spring의 다중 Entity Manager 문제 (0) | 2019.01.14 |
---|---|
[SPRING] 주석을 사용하여 시로 권한 부여 권한 검사가 작동하지 않습니다. (0) | 2019.01.14 |
[SPRING] org.hibernate.LazyInitializationException : 프록시를 초기화 할 수 없습니다 - 세션 없음, 프레임 없음 (0) | 2019.01.14 |
[SPRING] Spring을 사용하여 EhCache 인스턴스 가져 오기 ... 지능적으로 (0) | 2019.01.14 |
[SPRING] 서버 측 이미지 생성 용 JavaFX (0) | 2019.01.14 |