0

Webサービスの要求/応答をログに記録するためのチュートリアルをたくさん読んだところ、すべて同じことをしていることがわかりましたが、要求をログに記録することはできませんが、エラーは発生しません。ここにサンプルコードを示しました。誰かがどこで何が間違っているのか教えていただければ幸いです。

My web service 

@WebService(endpointInterface = "com.sample.ws.SampleWS", serviceName = "SampleWS")
@HandlerChain(file="/com/sample/ws/handler.xml")
public class SampleWSImpl implements SampleWS {
 public SampleWSImpl() {}
 public String hello(String s) {
 return "Hello "+s;
 }
}



 my handler.xml.

<?xml version="1.0" encoding="UTF-8"?>
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
 <handler-chain>
 <handler>
 <handler-class>com.sample.LoggingHandler</handler-class>
 </handler>
 </handler-chain>
</handler-chains>



my log handler class .

public class LoggingHandler implements SOAPHandler<SOAPMessageContext> {

 @Override
 public Set<QName> getHeaders() {
 return null;
 }

 @Override
 public void close(MessageContext context) {
 }

 @Override
 public boolean handleFault(SOAPMessageContext context) {
  logToSystemOut(context);
  return true;


    }

     @Override
     public boolean handleMessage(SOAPMessageContext context) {
     logToSystemOut(context);
      return true;
     }

 private void logToSystemOut(SOAPMessageContext smc) {

  Boolean outboundProperty = (Boolean) smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

  try {
   if (!outboundProperty.booleanValue()) {

   SOAPMessage message = smc.getMessage();

  System.out.println("Incoming message:");
  ByteArrayOutputStream stream = new ByteArrayOutputStream();
  message.writeTo(stream);

  System.out.println(stream.toString());
  System.out.println("=====================================");                
   }
  }
  catch (Exception e) {
  System.out.println("Exception in handler: " + e);
  }
  }
}
4

1 に答える 1