You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Enver ALTIN <ea...@gmail.com> on 2007/04/11 11:20:37 UTC

Web services behind restrictive firewalls but XML schemas on the web

Hi,

I'm trying to implement 3GPP MM7[1] DeliverReq service. After
importing the xsd and creating the wsdl file by hand I was able to
generate required code using Eclipse. That was easy.

But I'm in a weird situation that's a bit hard to explain. Given that:

  * I have absolutely no control over the XML schema.
  * I have absolutely no control over the clients that will connect to
the DeliverReq port I'll be providing.
  * Both clients and the service port will be in extremely restrictive
networks where firewalls only permit access to hosts and ports
specified; even DNS is not allowed. Thus, both ends don't have access
to XML Schema.
  * MM7 requires SOAP mustUnderstand="1"

These clients can actually connect to the port I provide, and the SOAP
header and body looks sane. But... Axis spits out fireworks of
exceptions about the mustUnderstand thing, I guess that's because XML
schema is not available at runtime.

So here comes the question. Can I just download the xsd and deploy it
along with my webapp and configure 'something' so it will just use the
existing schema?

Another comes. What if the folks at 3gpp accidentally move the xsd
file to some other folder? Will my service stop working?

Thanks a lot,

[1] http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4.xsd
-- 
Enver

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Web services behind restrictive firewalls but XML schemas on the web

Posted by Enver ALTIN <ea...@gmail.com>.
Hi Anne,

On 4/12/07, Anne Thomas Manes <at...@gmail.com> wrote:
> Check the Axis documentation and search for "handler".
> There's a sample logging handler in the the samples directory.

Thanks, I checked list archives and found a thread about someone else
working on the very same protocol in a slightly different way; I'm
trying to implement DeliverReq and he was trying to implement
SubmitReq but the solution was the same. The handler thing was easy,
and I'm another step ahead.

Now I've got another exception. Same request, but now it fails with this:

2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Enter:
DeserializationContext::startElement(, Subject)
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.message.RPCHandler - Enter: RPCHandler.onStartChild()
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(typeFromAttr00)
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.message.RPCHandler - Type from attributes is:  null
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.message.RPCHandler - Exit: RPCHandler.onStartChild()
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Pushing handler
org.apache.axis.encoding.DeserializerImpl@bdc9b3
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(gotType00)
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializerImpl - Deser got type
{http://www.w3.org/2001/XMLSchema}string
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.utils.NSStack - NSPush (32)
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Exit:
DeserializationContext::startElement()
2007-04-12 18:33:49,546 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Enter:
DeserializationContext::endElement(, Subject)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(popHandler00)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Popping handler
org.apache.axis.encoding.ser.SimpleDeserializer@523df
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializerImpl - Set value  in target
org.apache.axis.message.RPCParamTarget@1762027
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.utils.NSStack - NSPop (32)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Popped element stack
to org.apache.axis.message.RPCElement:DeliverReq
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Exit:
DeserializationContext::endElement()
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Enter:
DeserializationContext::startElement(, Sender)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.message.RPCHandler - Enter: RPCHandler.onStartChild()
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(typeFromAttr00)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.message.RPCHandler - Type from attributes is:  null
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.message.RPCHandler - Exit: RPCHandler.onStartChild()
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Pushing handler
org.apache.axis.encoding.DeserializerImpl@38fff7
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(gotType00)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializerImpl - Deser got type
{http://www.w3.org/2001/XMLSchema}string
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.utils.NSStack - NSPush (32)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Exit:
DeserializationContext::startElement()
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.encoding.DeserializationContext - Enter:
DeserializationContext::startElement(, Number)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(cantHandle00)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(toAxisFault00)
2007-04-12 18:33:49,547 [TP-Processor3] DEBUG
org.apache.axis.enterprise - Mapping Exception to AxisFault
org.xml.sax.SAXException: SimpleDeserializer encountered a child
element, which is NOT expected, in something it was trying to
deserialize.
	at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145)
	at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
	at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
	at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
	at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345)
	at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
	at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:81)
	at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.cellenity.m10tv.MMProcessor.doPost(MMProcessor.java:31)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
2007-04-12 18:33:49,553 [TP-Processor3] DEBUG org.apache.axis.SOAPPart
- Enter: SOAPPart ctor(FORM_FAULT)
2007-04-12 18:33:49,553 [TP-Processor3] DEBUG
org.apache.axis.i18n.ProjectResourceBundle -
org.apache.axis.i18n.resource::handleGetObject(setMsgForm)
2007-04-12 18:33:49,553 [TP-Processor3] DEBUG org.apache.axis.SOAPPart
- Setting current message form to: FORM_FAULT (currentMessage is now
org.apache.axis.AxisFault)
2007-04-12 18:33:49,553 [TP-Processor3] DEBUG org.apache.axis.SOAPPart
- Exit: SOAPPart ctor()
2007-04-12 18:33:49,553 [TP-Processor3] DEBUG
org.apache.axis.SimpleChain - Enter: SimpleChain::onFault
2007-04-12 18:33:49,553 [TP-Processor3] DEBUG
org.apache.axis.SimpleChain - Exit: SimpleChain::onFault

Any clues?
-- 
Enver

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Web services behind restrictive firewalls but XML schemas on the web

Posted by Anne Thomas Manes <at...@gmail.com>.
Check the Axis documentation and search for "handler".
There's a sample logging handler in the the samples directory.

Anne

On 4/12/07, Paul Fremantle <pz...@gmail.com> wrote:
> Enver
>
> The SOAP spec specifies that all headers that have a
> mustUnderstand="true" need to be handled. I happen to know that the
> way you deal with headers in Axis is Handlers.
>
> Paul
>
> On 4/11/07, Enver ALTIN <ea...@gmail.com> wrote:
> > On 4/11/07, Paul Fremantle <pz...@gmail.com> wrote:
> > > You need to ensure that you have written and deployed an Axis handler
> > > for the mm7:TransactionID header.
> >
> > Thanks a lot, probably that's what I'm missing. Can you please explain
> > how did you figure it out, or point me to a document?
> > --
> > Enver
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-help@ws.apache.org
> >
> >
>
>
> --
> Paul Fremantle
> VP/Technology, WSO2 and OASIS WS-RX TC Co-chair
>
> http://bloglines.com/blog/paulfremantle
> paul@wso2.com
>
> "Oxygenating the Web Service Platform", www.wso2.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Web services behind restrictive firewalls but XML schemas on the web

Posted by Paul Fremantle <pz...@gmail.com>.
Enver

The SOAP spec specifies that all headers that have a
mustUnderstand="true" need to be handled. I happen to know that the
way you deal with headers in Axis is Handlers.

Paul

On 4/11/07, Enver ALTIN <ea...@gmail.com> wrote:
> On 4/11/07, Paul Fremantle <pz...@gmail.com> wrote:
> > You need to ensure that you have written and deployed an Axis handler
> > for the mm7:TransactionID header.
>
> Thanks a lot, probably that's what I'm missing. Can you please explain
> how did you figure it out, or point me to a document?
> --
> Enver
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


-- 
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Web services behind restrictive firewalls but XML schemas on the web

Posted by Enver ALTIN <ea...@gmail.com>.
On 4/11/07, Paul Fremantle <pz...@gmail.com> wrote:
> You need to ensure that you have written and deployed an Axis handler
> for the mm7:TransactionID header.

Thanks a lot, probably that's what I'm missing. Can you please explain
how did you figure it out, or point me to a document?
-- 
Enver

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Web services behind restrictive firewalls but XML schemas on the web

Posted by Paul Fremantle <pz...@gmail.com>.
Enver

You need to ensure that you have written and deployed an Axis handler
for the mm7:TransactionID header.

Paul

On 4/11/07, Enver ALTIN <ea...@gmail.com> wrote:
> On 4/11/07, Paul Fremantle <pz...@gmail.com> wrote:
> > The mustUnderstand is not part of the schema. I'm guessing the schema
> > applies to the SOAP body, but the mustUnderstand headers are part of
> > the headers. Neither Axis nor Axis2 needs the schema at runtime.
> >
> > Can you attach an example SOAP message and the exceptions?
>
> Thanks for responding. Here is the SOAP message:
>
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <SOAP-ENV:Header>
> <mm7:TransactionID SOAP-ENV:mustUnderstand="1"
> xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2">103439804@mms.turkcell.com.tr</mm7:TransactionID>
> </SOAP-ENV:Header>
> <SOAP-ENV:Body>
> <mm7:DeliverReq
> xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2">
> <MM7Version>5.3.0</MM7Version><LinkedID>103439704@mms.turkcell.com.tr</LinkedID><Subject></Subject><Sender><Number>05332391227</Number></Sender><Recipients><To><Number>2670</Number></To></Recipients><TimeStamp>2007-04-11T15:13:41Z</TimeStamp><Priority>Normal</Priority></mm7:DeliverReq>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
>
> and here is the exception:
>
> 2007-04-11 15:13:45,237 [TP-Processor3] DEBUG
> org.apache.axis.utils.NSStack - NSPop (empty)
> AxisFault
>  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}MustUnderstand
>  faultSubcode:
>  faultString: Did not understand &quot;MustUnderstand&quot; header(s):
>  faultActor:
>  faultNode:
>  faultDetail:
>         {http://xml.apache.org/axis/}stackTrace:
>         at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:96)
>         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
>         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
>         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
>         at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
>         at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
>         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
>         at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
>         at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
>         at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>         at com.cellenity.m10tv.MMProcessor.doPost(MMProcessor.java:31)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
>         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
>         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
>         at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
>         at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
>         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)
>
>         {http://xml.apache.org/axis/}hostname:ealtin-laptop
>
> Did not understand "MustUnderstand" header(s):
>         at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:96)
>         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
>         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
>         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
>         at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
>         at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
>         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
>         at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
>         at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
>         at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>         at com.cellenity.m10tv.MMProcessor.doPost(MMProcessor.java:31)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
>         at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
>         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
>         at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
>         at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
>         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)
> --
> Enver
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


-- 
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Web services behind restrictive firewalls but XML schemas on the web

Posted by Enver ALTIN <ea...@gmail.com>.
On 4/11/07, Paul Fremantle <pz...@gmail.com> wrote:
> The mustUnderstand is not part of the schema. I'm guessing the schema
> applies to the SOAP body, but the mustUnderstand headers are part of
> the headers. Neither Axis nor Axis2 needs the schema at runtime.
>
> Can you attach an example SOAP message and the exceptions?

Thanks for responding. Here is the SOAP message:

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>
<mm7:TransactionID SOAP-ENV:mustUnderstand="1"
xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2">103439804@mms.turkcell.com.tr</mm7:TransactionID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<mm7:DeliverReq
xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-2">
<MM7Version>5.3.0</MM7Version><LinkedID>103439704@mms.turkcell.com.tr</LinkedID><Subject></Subject><Sender><Number>05332391227</Number></Sender><Recipients><To><Number>2670</Number></To></Recipients><TimeStamp>2007-04-11T15:13:41Z</TimeStamp><Priority>Normal</Priority></mm7:DeliverReq>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

and here is the exception:

2007-04-11 15:13:45,237 [TP-Processor3] DEBUG
org.apache.axis.utils.NSStack - NSPop (empty)
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}MustUnderstand
 faultSubcode:
 faultString: Did not understand &quot;MustUnderstand&quot; header(s):
 faultActor:
 faultNode:
 faultDetail:
	{http://xml.apache.org/axis/}stackTrace:
	at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:96)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.cellenity.m10tv.MMProcessor.doPost(MMProcessor.java:31)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)

	{http://xml.apache.org/axis/}hostname:ealtin-laptop

Did not understand "MustUnderstand" header(s):
	at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:96)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
	at com.cellenity.m10tv.MMProcessor.doPost(MMProcessor.java:31)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
-- 
Enver

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Web services behind restrictive firewalls but XML schemas on the web

Posted by Paul Fremantle <pz...@gmail.com>.
Enver

The mustUnderstand is not part of the schema. I'm guessing the schema
applies to the SOAP body, but the mustUnderstand headers are part of
the headers. Neither Axis nor Axis2 needs the schema at runtime.

Can you attach an example SOAP message and the exceptions?

Paul



On 4/11/07, Enver ALTIN <ea...@gmail.com> wrote:
> Hi,
>
> I'm trying to implement 3GPP MM7[1] DeliverReq service. After
> importing the xsd and creating the wsdl file by hand I was able to
> generate required code using Eclipse. That was easy.
>
> But I'm in a weird situation that's a bit hard to explain. Given that:
>
>   * I have absolutely no control over the XML schema.
>   * I have absolutely no control over the clients that will connect to
> the DeliverReq port I'll be providing.
>   * Both clients and the service port will be in extremely restrictive
> networks where firewalls only permit access to hosts and ports
> specified; even DNS is not allowed. Thus, both ends don't have access
> to XML Schema.
>   * MM7 requires SOAP mustUnderstand="1"
>
> These clients can actually connect to the port I provide, and the SOAP
> header and body looks sane. But... Axis spits out fireworks of
> exceptions about the mustUnderstand thing, I guess that's because XML
> schema is not available at runtime.
>
> So here comes the question. Can I just download the xsd and deploy it
> along with my webapp and configure 'something' so it will just use the
> existing schema?
>
> Another comes. What if the folks at 3gpp accidentally move the xsd
> file to some other folder? Will my service stop working?
>
> Thanks a lot,
>
> [1] http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4.xsd
> --
> Enver
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


-- 
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair

http://bloglines.com/blog/paulfremantle
paul@wso2.com

"Oxygenating the Web Service Platform", www.wso2.com

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org