본문으로 건너뛰기

13.5 JBossWS 구성

JBoss EAP 6에서는 기본으로Apache CXF 스택인 JBossWS-CXF를 사용하고 있지만 JBoss의 독자적인 구현 스택인 JBossWS-Native도 사용할 수 있다.

JBossWS-CXF는 JBossWS에서 Apache CXF를 사용하기 위한 모듈이며, Apache CXF의 WSDL 바인딩, WS-* 지원 기능을 사용한다. 또, JBoss EAP 6에서 JAX-RPC를 지원하기 위해 JBossWS-Native 모듈을 함께 사용하고 있다.

JBoss EAP 6에 배포된 웹 서비스 동작을 제어할 수 있다. 관리 콘솔에서는 ‘Profile’ ‘Web’ ‘Web Services’에서 설정할 수 있다.

그림 7. 웹 서비스 서브 시스템 설정

파라미터설명
modify-wsdl-address기본적으로 JBoss의 IP주소가 WSDL의 주소가 된다. 웹 서버나 도메인 이름을 통해 웹 서비스를 제공하면 이 주소로 WSDL 주소를 변경해야 한다. true이면 <soap:address>의 값을 wsdl-host, wsdl-port의 값을 지정한 값으로 덮어쓴다. false이면 <soap:address>의 URL이 유효하지 않은 경우에만 덮어쓴다. /subsystem=webservices/:write-attribute(name=modify-wsdl-address, value=true)
wsdl-host<soap:address>를 덮어쓸 때 사용할 호스트 이름이나 IP 주소를 설정한다. jbossws.undefined.host 로 설정하면 <soap:address> 요청자의 호스트가 사용된다. /subsystem=webservices /:write-attribute(name=wsdl-host, value=192.168.0.100)
wsdl-port<soap:address>를 덮어쓸 때 사용하는 HTTP 포트번호이다. 정의하지 않으면, 설치된 HTTP 커넥터를 찾아 그 HTTP 포트를 사용한다. /subsystem=webservices/:write-attribute(name=wsdl-port, value=8080)
wsdl-secure-port<soap:address>를 덮어쓸 때 사용하는 HTTPS 포트번호이다. 정의하지 않으면, 설치된 HTTPS 커넥터를 찾아 그 HTTPS 포트를 사용한다. /subsystem=webservices/:write-attribute(name=wsdl-secure-port, value=8443)

표 2. 웹 서비스의 주요 설정 항목

CLI를 사용하여 아래와 같이 JBossWS의 웹 서비스 서브 시스템을 설정한다.

[standalone@localhost:9999 /] cd /subsystem=webservices

[standalone@localhost:9999 subsystem=webservices] :write-attribute(name=modify-wsdl-address, value=true)

{
"outcome" => "success",
"response-headers" => {
"operation-requires-reload" => true,
"process-state" => "reload-required"
}
}

read-resource 명령으로 설정된 내용을 확인한다.

[standalone@localhost:9999 subsystem=webservices] :read-resource

{
"outcome" => "success",
"result" => {
"endpoint" => {},
"modify-wsdl-address" => true,
"wsdl-host" => "jbossws.undefined.host",
"wsdl-port" => 80,
"wsdl-secure-port" => 443,
"endpoint-config" => {
"Standard-Endpoint-Config" => undefined,
"Recording-Endpoint-Config" => undefined
}
},
"response-headers" => {"process-state" => "reload-required"}
}