2012-09-10 4 views
0

JBoss 관리 가이드를 읽었을 때 "상태 저장 엔드 포인트"를 만드는 데 WS- 어드레싱이 사용되는 것을 볼 수 있습니다.WS- 어드레싱이 "상태있는 엔드 포인트"(JBossWS)를 만드는 방법

나는 WS- 어드레싱이 웹 서비스의 SOAP 헤더 내에서 메시징 라우팅 데이터를 지정하는 표준을 작성한다는 것을 알고 있지만, 이것이 엔드 포인트의 상태와 어떤 관련이 있는지 잘 모르겠습니다. 여기

은 위키 백과에서 뭔가 :

WS-주소 일반적인 SOAP 헤더를 지정 에 의해 지원을 비동기 상호 작용의 사용을 (WSA : ReplyTo의)을 엔드 포인트 참조 (EPR)를하는 응답에 포함 보내질 것입니다. 서비스 공급자는 wsa : ReplyTo 끝점에 대한 별도의 연결을 통해 응답 메시지를 전송합니다. 이는 의 수명을 HTTP 요청/응답 프로토콜의 수명에서 SOAP 요청/응답 상호 작용과 분리하여 임의의 시간 간격으로 확장 가능한 장기 실행 상호 작용 을 가능하게합니다.

그래서 wsa:ReplyTo는 당신에게 당신이 HTTP 요청을 할 경우에도 올바른 위치에 응답을 얻을 수있는 방법이 있기 때문에 비동기 적으로 일을 할 수있는 기능을 제공합니다.

나는 여전히 "국가는"어디에서 오는 볼에 실패하고있다.

여기에 대한 통찰력을?

답변

0

지금 받으십시오. 코드 예제를 보면 의미가 있습니다.

@WebService(name = "StatefulEndpoint", targetNamespace = "http://org.jboss.ws/sam ples/wsaddressing", serviceName = "TestService") 
@Addressing(enabled=true, required=true) 
@SOAPBinding(style = SOAPBinding.Style.RPC) 
public class StatefulEndpoint implements StatefulEndpoint, ServiceLifecycle 
{ 
@WebMethod 
public void addItem (String item) 
{ ... } 
@WebMethod 
public String getItemsInCart() 
{ ... } 
} 

는 다음 웹 서비스 클라이언트가 활성화 될 getPort 기능에 새로운 AddressingFeature 건네 두 개의 포트

port1 = (StatefulEndpoint)service.getPort(StatefulEndpoint.class, new 
javax.xml.ws.soap.AddressingFeature()); 
port2 = (StatefulEndpoint)service.getPort(StatefulEndpoint.class, new 
javax.xml.ws.soap.AddressingFeature()); 

을 생성한다 : 여기서, 보스 관리 가이드로부터 추출 된, 예 StatefulEndpoint WebService를이다 WS- 어드레싱 기능. 여기

우리가 방금 만든 두 개의 포트에 대한 statefulness을 보여줍니다 코드 :

public class AddressingStatefulTestCase extends JBossWSTest 
{ 
... 
public void testAddItem() throws Exception 
{ 
port1.addItem ("Ice Cream "); 
port1.addItem ("Ferrari"); 
port2.addItem ("Mars Bar"); 
port2.addItem ("Porsche"); 
} 
public void testGetItems() throws Exception 
{ 
String items1 = port1.getItems(); 
assertEquals("[Ice Cream , Ferrari]", item s1); 
String items2 = port2.getItems(); 
assertEquals("[Mars Bar, Porsche]", item s2); 
} 
} 

주 PORT2는보다 다른 항목을 추가 포트 1 만 포트 1은 getItems를 호출 할 때 ... 그것은 단지 항목을 가져옵니다 포트 2의 포트가 아니라 포트가 추가 된 것입니다. 이것이 국가에주는 것입니다.