2010-12-17 5 views
0

WSDL 기반 웹 서비스와 Apache Axis 2를 사용하고 있습니다. 저는 웹 서비스에 대한 전문가가 아니며, 제가 일하는 사람은 이 특정 웹 서비스가 작동하려면 두 개의 호출이 동일한 연결에서 만들어 져야합니다. 즉 http keep-alive를 사용해야합니다 (기본적으로 "저장"메소드 후에 호출해야하는 "커밋 트랜잭션"메소드가 있습니다). 이것은 일반적인 문제 일 것 같지만 Google에서는 아무 것도 발견하지 못했습니다.동일한 연결에서 웹 서비스 호출하기

Axis에이를 명시 적으로 전달하는 방법이 있는지 궁금합니다. 또한 두 연결이 실제로 동일한 연결에서 이루어지고 있는지 여부를 어떻게 확인할 수 있습니까? wireshark와 같은 일부 HTTP 모니터링 소프트웨어가이 사실을 알 수 있다고 생각하지만 아직 설치하지 않았습니다.

답변

1

함께 작업하는 사람이 잘못되었습니다. 단일 TCP 연결을 통해 여러 요청을 처리하기 위해 연결 유지 (keep-alive)를 사용하여 HTTP를 최적화 할 수있는 경우에도이 최적화는 호출자 또는 호출 수신자에게 투명해야합니다. 연결 유지 (keep-alive) 연결에서 클라이언트가 서로 후에 두 개의 요청을하는지 또는 두 개의 개별 연결을 사용하는지 여부는 중요하지 않습니다.

Java 라이브러리 (클라이언트 측 HttpURLConnection 및 서버 측 서블릿 API)는이 정보에 대한 액세스를 제공하지 않기 때문에 사용중인 소프트웨어가 실제로 HTTP 요청이 수행되는 방식을 알 수 없습니다.

+0

내가 가진 나머지 질문은 매개 변수를 사용하지 않는 커밋 트랜잭션 메서드가있는 경우 서버가 트랜잭션을 어떻게 알 수 있습니까? 웹 서비스/엑시스에는 각 요청과 함께 전달되는 고유 한 세션 ID와 같은 일부 세션 추적 메커니즘이 포함되어 있습니까? 그렇지 않으면 내가 사용하고있는 웹 서비스를 만든 사람들은 자신들이하고있는 일에 대해 전혀 몰랐다. – Otto

0

nmap link text을 사용하여 각 포트에서 실제로 실행중인 내용을 볼 수 있습니다.

동시에 2 회의 전화를 걸면 axis2는 포트가 이미 바인드 된 오류를 발생시킵니다. 모든 포트는 동시에 2 개의 요청을 처리 할 수 ​​없습니다 (제 의견). 대기열에 넣고 연속적으로 처리 할 수 ​​있습니다. 그러나 다른 출처와 마찬가지로 확인하십시오.

관련 문제