2010-03-26 5 views
16

축 2 클라이언트가 작성한 모든 요청/응답을 기록하려고합니다. client-config.wsdd이라는 파일을 설명자로 http://code.google.com/support/bin/answer.py?hl=en&answer=15137에 만들려고했으나 성공하지 못했습니다 (로그 파일이 없습니다).로그 축 2 클라이언트 요청 및 응답

요청은 https를 통해 이루어지며 중요한지 확실하지 않습니다. 내가 성공하지

<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/> 

<transport name="https" pivot="java:org.apache.axis.transport.http.HTTPSender"/> 

을 시도했다.

+0

너무 나를 위해 작동하지 않습니다. 아마 이전 버전 (축 v1)에 해당했습니다. – maayank

답변

32

:-) 나를 위해 작동합니다. 서버 시작 스크립트,

JAVA_OPTS=-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog -Dorg.apache.commons.logging.simplelog.showdatetime=true -Dorg.apache.commons.logging.simplelog.log.httpclient.wire=debug -Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient=debug 

C : \ 자바 % JAVA_OPTS % YourClientAppln.java

건배, Sankar

+0

Sankar : 오늘 내 영웅의 이름. – Kieveli

+0

는 VM 인수에 그 디버그 구성의 매개 변수/실행 구성을 작성 이클립스에서 실행하려면 –

+0

이미 log4j에 로거를 사용하는 경우 : log4j.logger.org.apache.commons.httpclient = 디버그 log4j.logger.httpclient을 .wire = 디버그 –

0

나는 보통 SOAP 메시지의 본문을 기록하고, 내 서비스 클래스에 전달한다.

public OMElement myOperation(OMElement request) throws AxisFault { 

    log.debug("Request: {}", request); 

    .. 

    log.debug("Response: {}", response); 

    return response 
} 

낮은 기술하지만 그냥 독립형 클라이언트를 실행하는 동안 다음과 같은 JVM 인수를 사용하거나 출원이 VM 인자들을 포함,

SOAP 메시지에 대한 Axis2는 클라이언트 측 로깅을위한
+0

고맙습니다. 클라이언트 로깅을 찾고 있습니다. –

+0

Manuel이 언급했듯이 서버 측에만 적용 가능 – maayank

1

내가 조금 자세한 것을 알고 있지만, 여기에 우리가 그것을 해결 방법은 다음과 같습니다

SOAPFactory factory = OMAbstractFactory.getSOAP12Factory(); 
OMElement requestElement = request.getOMElement(RegisterIntegrationAgent.MY_QNAME, factory); 
LOGGER.debug(requestElement); 
0

-Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog -Dorg.apache.commons.logging.simplelog.showdatetime = true -Dorg.apache.commons.logging.simple log.log.httpclient.wire = 디버그 -Dorg.apache.commons.logging.simplelog.log.org.apache.commons.httpclient = 디버그

이것은

+5

2 세 응답의 중복 –

+0

아닙니다. 와이어 데이터를 기록하는 httpclient.wire 패턴이 포함됩니다. – Scott

1

을했다 당신은 당신의 log4j에 아래 라인을 추가하는 경우 .properties 파일을 사용하면 VM 또는 JVM 매개 변수를 전달할 필요가 없습니다.

log4j.logger.httpclient.wire.content = DEBUG, Axis3LogFile

#Axis2 
log4j.appender.Axis2LogFile=org.apache.log4j.RollingFileAppender 
log4j.appender.Axis2LogFile.File=${catalina.base}/logs/Axis2-client.log 
log4j.appender.Axis3LogFile.layout=org.apache.log4j.PatternLayout 
log4j.appender.Axis3LogFile.layout.ConversionPattern=%d{ISO8601} [%X{UUID}] %5p %t %c{1} - %m%n