[ 
http://issues.apache.org/jira/browse/MUSE-146?page=comments#action_12453744 ] 
            
Dan Jemiolo commented on MUSE-146:
----------------------------------

Okay, using my latest build, I get the following trace when I send a message 
payload that doesn't use prefixes:

Nov 27, 2006 6:28:10 PM org.apache.muse.util.LoggingUtils logMessage
FINE: [SERVER TRACE] SOAP envelope contents (incoming):

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";>
    <soap:Header>
        <wsa:To 
xmlns:wsa="http://www.w3.org/2005/08/addressing";>http://9.65.227.130:8080/wsn-consumer/services/consumer</wsa:To>
        <wsa:Action 
xmlns:wsa="http://www.w3.org/2005/08/addressing";>http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/NotifyRequest</wsa:Action>
        <wsa:MessageID 
xmlns:wsa="http://www.w3.org/2005/08/addressing";>uuid:65b369aa-c51d-e805-2946-9cd1f7aa86d3</wsa:MessageID>
        <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing";>
            <wsa:ReferenceParameters/>
            
<wsa:Address>http://9.65.227.130:8080/wsn-producer/services/WsResource</wsa:Address>
        </wsa:From>
    </soap:Header>
    <soap:Body>
        <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";>
            "http://ws.apache.org/muse/test/wsrf";
                xmlns:muse-wsa="http://ws.apache.org/muse/addressing";
                xmlns:wsa="http://www.w3.org/2005/08/addressing"; 
xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"&gt;
                <wsnt:SubscriptionReference>
                <wsa:Address 
xmlns:wsa="http://www.w3.org/2005/08/addressing";>http://9.65.227.130:8080/wsn-producer/services/SubscriptionManager</wsa:Address>
                <wsa:ReferenceParameters 
xmlns:wsa="http://www.w3.org/2005/08/addressing";>
                    <muse-wsa:ResourceId 
xmlns:muse-wsa="http://ws.apache.org/muse/addressing";>MuseResource-1</muse-wsa:ResourceId>
                </wsa:ReferenceParameters>
            </wsnt:SubscriptionReference>
            <wsnt:Topic
                
Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Concrete"; 
xmlns:tns="http://ws.apache.org/muse/test/wsrf";>tns:MyTopic</wsnt:Topic>
            <wsnt:ProducerReference>
                <wsa:ReferenceParameters 
xmlns:wsa="http://www.w3.org/2005/08/addressing"/>
                <wsa:Address 
xmlns:wsa="http://www.w3.org/2005/08/addressing";>http://9.65.227.130:8080/wsn-producer/services/WsResource</wsa:Address>
            </wsnt:ProducerReference>
            <wsnt:Message>
                <MyMessage xmlns="http://ws.apache.org/muse/test/wsrf";>This is 
a message from muse-test.apache.org</MyMessage>
            </wsnt:Message>
        </wsnt:Notify>
    </soap:Body>
</soap:Envelope>


Nov 27, 2006 6:28:10 PM org.apache.muse.util.LoggingUtils logError
INFO: There was an error while processing a request:

[ID = 'NoMessageContent'] The NotificationMessage XML does not have a Message 
element. All messages must have a message payload associated with them.

        
org.apache.muse.ws.notification.impl.SimpleNotificationMessage.<init>(SimpleNotificationMessage.java:114)
        
org.apache.muse.ws.notification.impl.NotificationMessageSerializer.fromXML(NotificationMessageSerializer.java:42)
        
org.apache.muse.core.serializer.ArraySerializer.fromXML(ArraySerializer.java:123)
        
org.apache.muse.core.routing.ReflectionMessageHandler.fromXML(ReflectionMessageHandler.java:135)
        org.apache.muse.core.SimpleResource.invoke(SimpleResource.java:351)
        
org.apache.muse.core.routing.SimpleResourceRouter.invoke(SimpleResourceRouter.java:278)
        
org.apache.muse.core.platform.axis2.AxisIsolationLayer.handleRequest(AxisIsolationLayer.java:105)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        java.lang.reflect.Method.invoke(Method.java:324)
        
org.apache.axis2.receivers.RawXMLINOutMessageReceiver.invokeBusinessLogic(RawXMLINOutMessageReceiver.java:99)
        
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:39)
        org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:504)
        
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:324)
        27 more...
------------------------------------------



This is very weird. The NotificationMessage element is removed! the 
<wsnt:NotificationMessage part is erased, but the namespace declarations remain 
as text, and the closing bracket (>) has been normalized to the proper 
character code (as if it were text data). When you put a prefix back in, the 
NotificationMessage element remains.

Because the NotificationMessage element is removed (and its children become 
Notify's children), the parser gets screwed up.

I honestly don't know what to do about this, because that server-side logging 
(LoggingUtils.logMessage()) happens right after the XML is received from Axis2. 
I'm guessing it may be an Axis2 problem, but I will doublecheck using our new 
"mini" platform tonight.




> NotificationConsumer creates empty NotificationMessage array when no XML 
> prefixes present
> -----------------------------------------------------------------------------------------
>
>                 Key: MUSE-146
>                 URL: http://issues.apache.org/jira/browse/MUSE-146
>             Project: Muse
>          Issue Type: Bug
>          Components: Core Engine - Routing and Serialization, WSN 
> NotificationConsumer
>    Affects Versions: 2.0.0
>         Environment: Windows XP SP2, Apache 2.2, Tomcat 5.5, Muse 2.0.0, 
> Eclipse 3.2.1, XmlBeans 2.2.0
>            Reporter: Vinh Nguyen
>         Assigned To: Dan Jemiolo
>            Priority: Minor
>             Fix For: 2.1.0
>
>         Attachments: MuseBox.zip
>
>
> Sending a notification containing a complex element doesn't seem to work.  It 
> only works for an element containing a simple string message.  I'm using 
> XmlBeans for conversion between xml schemas and java objects.  Using the code 
> below, the notification does not appear to be sent, nor do any errors get 
> thrown in the process.
> BoxDocument doc = BoxDocument.Factory.newInstance();
> BoxType type = doc.addNewBox();
> type.setWidth(BigInteger.valueOf(123));
> type.setHeight(BigInteger.valueOf(123));
> QName qname = new QName(NAMESPACE_URI, "MyMessage", PREFIX);
> Element payload = XmlUtils.createElement(qname, 
> XmlUtils.getFirstElement((Document)doc.getDomNode()));
> NotificationProducer np = ...
> np.publish(TOPIC_NAME, payload);
> Here is the XML from doc.xmlText():
> <box:Box 
> xmlns:box="http://cisco.com/musebox/schemas/box";><box:width>123</box:width><box:height>123</box:height></box:Box>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to