See samples.proxy sample in axis.
-- dims
On 4/21/05, Soactive Inc <[EMAIL PROTECTED]> wrote:
> My environment:
>
> 1. Win2K
> 2. Apache Tomcat 5.0.24
> 3. Axis 1.2RC3
>
> My application scenario:
>
> I would like to use a single proxy web service that deals with
> connecting to the various end web services from client applications. I
> am trying to achieve this by using the request SOAP message to extract
> pieces of information about the end service and then connect to them
> dynamically using the SAAJ API within the proxy web service. I get the
> following error (appended at the end) when I try to use a JAX-RPC
> handler for the service. The error message obviously does not convey
> much information for me to resolve the situation.
>
> Any ideas that go toward resolving this issue would be appreciated.
>
> -Arun
>
> public final class ServiceJAXHandler implements Handler {
> private HandlerInfo handlerInfo;
>
> /**
> * Initializes the instance of the handler.
> */
> public void init(HandlerInfo hi) {
> handlerInfo = hi;
> }
>
> /**
> * Destroys the Handler instance.
> */
> public void destroy() {
> }
>
> public QName[] getHeaders() {
> return handlerInfo.getHeaders();
> }
>
> /**
> * Specifies that the SOAP request message be logged to a log file
> before the
> * message is sent to the Java class backend component
> */
> public boolean handleRequest(MessageContext mc) {
> try {
> SOAPMessageContext context = (SOAPMessageContext) mc;
>
> System.out.println("##### Printing Request Message....");
> SOAPMessage message = context.getMessage();
> message.writeTo(System.out);
>
> HttpServletRequest servletRequest =
> (HttpServletRequest)
>
> context.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
> System.out.println("##### Request URL: " +
> servletRequest.getRequestURL());
>
> SOAPMessage responseSOAPMessage = <logic deliberately
> ommitted here...>
>
> context.setMessage(responseSoapMessage);
>
> System.out.println("##### Leaving Handler Code....");
>
> } catch (Exception ex) {
> // throw exception
> }
> return false;
> }
>
> /**
> * Specifies that the SOAP response message be logged to a log
> file before the
> * message is sent back to the client application that invoked the
> Web service.
> */
> public boolean handleResponse(MessageContext mc) {
>
> SOAPMessageContext messageContext = (SOAPMessageContext) mc;
>
> System.out.println("** Response: " +
> messageContext.getMessage().toString());
> return false;
> }
>
> /**
> * Specifies that a message be logged to the log file if a SOAP fault is
> * thrown by the Handler instance.
> */
> public boolean handleFault(MessageContext mc) {
> SOAPMessageContext messageContext = (SOAPMessageContext) mc;
>
> System.out.println("** Fault: " +
> messageContext.getMessage().toString());
> return false;
> }
>
> ========================================================================================
>
> AxisFault
> faultCode: {http://xml.apache.org/axis/}Server
> faultSubcode:
> faultString: Server Error
> faultActor:
> faultNode:
> faultDetail:
> {http://xml.apache.org/axis/}stackTrace:Server Error
> at
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:473)
> at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
> at
> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> at
>
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327
> )
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
> terChain.java:237)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
> .java:157)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> 214)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
>
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextVal
> ve.java:198)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
> 152)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:104)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10
> 9)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
> at
>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti
> on(Http11Protocol.java:702)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
> at
>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:6
> 44)
> at java.lang.Thread.run(Thread.java:536)
>
> {http://xml.apache.org/axis/}hostname:HOSTNAME
>
> Server Error
> at
>
> org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
>
> at
>
> org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
> at
>
> org.apache.axis.encoding.DeserializationContext.endElement(DeserializationConte
> xt.java:1077)
> at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
>
> Source)
> at
>
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher
> .dispatch(Unknown Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>
> Sour
> ce)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at javax.xml.parsers.SAXParser.parse(Unknown Source)
> at
>
> org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.ja
> va:225)
> at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:645)
> at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
> at
>
> org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecke
> r.java:62)
> at org.apache.axis.client.AxisClient.invoke(AxisClient.java:173)
> at org.apache.axis.client.Call.invokeEngine(Call.java:2737)
> at org.apache.axis.client.Call.invoke(Call.java:2720)
> at org.apache.axis.client.Call.invoke(Call.java:2396)
> at org.apache.axis.client.Call.invoke(Call.java:2319)
> at org.apache.axis.client.Call.invoke(Call.java:1776)
> at
>
> org.apache.jsp.jsp.admin.ServiceDetail_jsp.invokeSampleAxisService(ServiceDetai
> l_jsp.java:164)
> at
>
> org.apache.jsp.jsp.admin.ServiceDetail_jsp._jspService(ServiceDetail_jsp.java:3
> 46)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
>
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
> terChain.java:237)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
> .java:157)
> at
>
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav
> a:703)
> at
>
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.
> java:589)
> at
>
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.ja
> va:499)
> at
>
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
>
> at
> org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:581)
> at
> org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:137)
> at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:177)
> at
> org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:756)
> at
>
> org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:
> 881)
> at
> org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473)
> at
> org.apache.jsp.layout.companyServiceDefault_jsp._jspx_meth_tiles_insert_2(gri
> dscopeServiceDefault_jsp.java:144)
> at
> org.apache.jsp.layout.companyServiceDefault_jsp._jspService(companyServiceD
> efault_jsp.java:73)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:298)
>
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
> terChain.java:237)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
> .java:157)
> at
>
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav
> a:703)
> at
>
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispat
> cher.java:463)
> at
>
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.
> java:398)
> at
>
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.ja
> va:312)
> at
>
> org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
>
> at
>
> org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.j
> ava:274)
> at
>
> org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesReque
> stProcessor.java:254)
> at
>
> org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequest
> Processor.java:309)
> at
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
> at
> org.apache.struts.action.ActionServlet.process(ActionServlet.java:1480)
> at
> org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:506)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
> terChain.java:237)
> at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
> .java:157)
> at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> 214)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
>
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextVal
> ve.java:198)
> at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
> 152)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:104)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10
> 9)
> at
>
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.j
> ava:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
> at
>
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnecti
> on(Http11Protocol.java:702)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
> at
>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:6
> 44)
> at java.lang.Thread.run(Thread.java:536)
>
--
Davanum Srinivas - http://webservices.apache.org/~dims/