Mar 1, 2007 1:40:14 PM org.apache.muse.util.LoggingUtils logError INFO: There was an error while processing a request:
[ID = 'InvalidDialect'] Subscription filters do not support the dialect 'http://www.w3.org/TR/1999/REC-xpath-19991116'. The supported dialects are: http://www.w3.org/TR/1999/REC-xpath-19991116 org.apache.muse.ws.notification.impl.TopicFilter.<init>(TopicFilter.java:77) org.apache.muse.ws.notification.impl.MessagePatternFilterHandler.newInstance(MessagePatternFilterHandler.java:49) org.apache.muse.ws.notification.impl.FilterFactory.newInstance(FilterFactory.java:125) org.apache.muse.ws.notification.impl.Subscribe.<init>(Subscribe.java:79) org.apache.muse.ws.notification.impl.SubscribeHandler.fromXML(SubscribeHandler.java:49) org.apache.muse.core.SimpleResource.invoke(SimpleResource.java:364) org.apache.muse.core.routing.SimpleResourceRouter.invoke(SimpleResourceRouter.java:286) org.apache.muse.core.platform.mini.MiniIsolationLayer.handleRequest(MiniIsolationLayer.java:104) org.apache.muse.core.platform.mini.MiniServlet.doPost(MiniServlet.java:65) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) 10 more... Daniel Jemiolo wrote: > > can you send the stack trace from muse.log? > > thanks, > Dan > > > dnguyen <[EMAIL PROTECTED]> wrote on 03/01/2007 02:02:14 PM: > >> >> Hi Dan. Thanks for your efforts. With the latest nightly build, we are > now >> able to change filters using subscription.setResourceProperty(). However >> when we subscribe to a producer specifying a MessageContentFilter, we > get an >> exception: >> >> >> ***************************** >> <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://www.w3. >> org/2005/08/addressing/role/anonymous</wsa:To> >> <wsa:Action >> xmlns:wsa="http://www.w3.org/2005/08/addressing">http://www.w3. >> org/2005/08/addressing/fault</wsa:Action> >> <wsa:MessageID >> > xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:d65ebd52-880f-f3d0-d44f- >> d3f4535864b9</wsa:MessageID> >> <wsa:RelatesTo RelationshipType="wsa:Reply" >> > xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:9e968c17-0a16-1256- >> ade2-802745174af6</wsa:RelatesTo> >> <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing"> >> >> > <wsa:Address>http://localhost:8080/wsn-producer/services/WsResource</wsa:Address> >> </wsa:From> >> </soap:Header> >> <soap:Body> >> <soap:Fault> >> <soap:Code> >> <soap:Value>soap:Receiver</soap:Value> >> </soap:Code> >> <soap:Reason> >> <soap:Text>[ID = 'InvalidDialect'] Subscription filters > do >> not support the dialect 'http://www.w3.org/TR/1999/REC-xpath-19991116'. > The >> supported dialects are: >> http://www.w3.org/TR/1999/REC-xpath-19991116</soap:Text> >> </soap:Reason> >> <soap:Detail> >> <wsnt:TopicExpressionDialectUnknownFault >> xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"> >> <wsrf-bf:Timestamp >> > xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2">2007-03-01T11:13:31-06: >> 00</wsrf-bf:Timestamp> >> </wsnt:TopicExpressionDialectUnknownFault> >> </soap:Detail> >> </soap:Fault> >> </soap:Body> >> </soap:Envelope> >> >> org.apache.muse.ws.addressing.soap.SoapFault: [ID = 'InvalidDialect'] >> Subscription filters do not support the dialect >> 'http://www.w3.org/TR/1999/REC-xpath-19991116'. The supported dialects > are: >> http://www.w3.org/TR/1999/REC-xpath-19991116 >> at >> > org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClient.java:294) >> at >> > org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClient.java:250) >> at >> org.apache.muse.ws.notification.remote.NotificationProducerClient. >> subscribe(NotificationProducerClient.java:93) >> at org.apache.muse.test.wsn.WsnTestClient.main(Unknown Source) >> *************************************** >> >> >> This only happens during subscription. We tried subscribing with the >> default filter or a TopicFilter and then changing it afterwards, and > this >> works. >> >> >> >> Daniel Jemiolo wrote: >> > >> > ok, two things: >> > >> > 1. I added a FilterSerializer and registered it as part of the WSN >> > capability initialization. This means that you should be able to > change a >> > subscription's filter using SetResourceProperties so long as you add > that >> > operation to your WSDL and make sure the capability is listed in > muse.xml. >> > >> > 2. I updated the NotificationProducer implementation so that you can > add >> > custom filter types. Here's what you have to do: >> > >> > a. Implement the Filter interface (it has one method, accepts()) to do > the >> > message analysis you want. In your case, your Filter class will be > using >> > custom XPath functions on the message content. >> > >> > b. Implement the FilterFactoryHandler interface (two methods) and have > it >> > return a new instance of your Filter class when the XML provided has > the >> > right dialect. It should look something like this: >> > >> > public MyFilterHandler implements FilterFactoryHandler >> > { >> > public boolean accepts(QName filterName, String filterDialect) >> > { >> > return >> > filterName.equals(WsnConstants.MESSAGE_CONTENT_QNAME) && >> > filterDialect.equals("some URI you made up"); >> > } >> > >> > public Filter newInstance(Element filterXML) >> > { >> > String expression = XmlUtils.extractText(filterXML); >> > return new MyFilter(); >> > } >> > } >> > >> > c. add the handler to the FilterFactory in one of your initialize() >> > methods: >> > >> > FilterFactory.getInstance().addHandler(new MyFilterHandler()); >> > >> > >> > This will make it so that your handler is queried during the > subscribe() >> > requests and allowed to create your custom Filter objects if > appropriate. >> > Your filter will then be used by the subscription resource to decide > what >> > messages to send out. >> > >> > >> > As a bonus, you now get to test both scenarios and let me know if they > >> > work. :) I am taking care of the regression testing for previous >> > projects. >> > >> > Dan >> > >> > >> > dnguyen <[EMAIL PROTECTED]> wrote on 02/28/2007 05:06:20 PM: >> > >> >> >> >> Whoops! Sorry about that...I copied the wrong thing from the > muse.xml >> > file. >> >> I did use the Get capability, which is what the original post should >> > have >> >> had. That did not work for me. It looked like this: >> >> >> >> ********************************************* >> >> <resource-type> >> >> <context-path>SubscriptionManager</context-path> >> >> <wsdl> >> >> <wsdl-file>wsdl/WS-BaseNotification-1_3.wsdl</wsdl-file> >> >> <wsdl-port-type>wsntw:SubscriptionManager</wsdl-port-type> >> >> </wsdl> >> >> >> >> <java-id-factory-class>org.apache.muse.core.routing. >> >> CounterResourceIdFactory</java-id-factory-class> >> >> >> >> >> > > <java-resource-class>org.apache.muse.ws.resource.impl.SimpleWsResource</java- >> >> resource-class> >> >> <capability> >> >> >> >> >> > > <capability-uri>http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata</capability-uri> >> >> >> >> <java-capability-class>org.apache.muse.ws.metadata.impl. >> >> SimpleMetadataExchange</java-capability-class> >> >> </capability> >> >> <capability> >> >> >> >> >> > > <capability-uri>http://docs.oasis-open.org/wsrf/rpw-2/Get</capability-uri> >> >> >> >> > <java-capability-class>org.apache.muse.ws.resource.properties.get.impl. >> >> SimpleGetCapability</java-capability-class> >> >> </capability> >> >> <capability> >> >> >> >> >> > > <capability-uri>http://docs.oasis-open.org/wsrf/rpw-2/Set</capability-uri> >> >> >> >> > <java-capability-class>org.apache.muse.ws.resource.properties.set.impl. >> >> SimpleSetCapability</java-capability-class> >> >> </capability> >> >> <capability> >> >> >> >> >> > <capability-uri>http://docs.oasis-open. >> org/wsn/bw-2/SubscriptionManager</capability-uri> >> >> >> >> <java-capability-class>org.apache.muse.ws.notification.impl. >> >> SimpleSubscriptionManager</java-capability-class> >> >> <init-param> >> >> <param-name>trace-notifications</param-name> >> >> <param-value>true</param-value> >> >> </init-param> >> >> </capability> >> >> <capability> >> >> >> >> <capability-uri>http://docs.oasis-open. >> >> org/wsrf/rlw-2/ImmediateResourceTermination</capability-uri> >> >> >> >> <java-capability-class>org.apache.muse.ws.resource.lifetime.impl. >> >> SimpleImmediateTermination</java-capability-class> >> >> </capability> >> >> <capability> >> >> >> >> <capability-uri>http://docs.oasis-open. >> >> org/wsrf/rlw-2/ScheduledResourceTermination</capability-uri> >> >> >> >> <java-capability-class>org.apache.muse.ws.resource.lifetime.impl. >> >> SimpleScheduledTermination</java-capability-class> >> >> </capability> >> >> <init-param> >> >> <param-name>validate-wsrp-schema</param-name> >> >> <param-value>false</param-value> >> >> </init-param> >> >> </resource-type> >> >> ************************************************ >> >> >> >> >> >> Vinh Nguyen (vinguye2) wrote: >> >> > >> >> > The operation you are calling is SetResourceProperties, but you are >> >> > adding a Get operation to muse.xml. You need to add the correct > "Set" >> >> > operation to muse.xml. If you are using Axis2, you also need to > add >> > the >> >> > appropriate action to services.xml. >> >> > >> >> > >> >> > -----Original Message----- >> >> > From: dnguyen [mailto:[EMAIL PROTECTED] >> >> > Sent: Wednesday, February 28, 2007 1:39 PM >> >> > To: [email protected] >> >> > Subject: Problem updating subscription resource property. >> >> > >> >> > >> >> > I am trying to update the filter in the SubscriptionClient through > the >> >> > updateResourceProperty() method but not having any success. I get > the >> >> > error >> >> > below: >> >> > >> >> > >> >> > ****************************** >> >> > org.apache.muse.ws.addressing.soap.SoapFault: [ID = >> >> > 'ActionNotSupported'] The re source at 'SubscriptionManager' does > not >> >> > expose an operation with the WS-Action >> >> > >> > > 'http://docs.oasis-open.org/wsrf/rpw-2/SetResourceProperties/SetResource >> >> > PropertiesRequest' >> >> > through any of its capabilities. >> >> > at >> >> > >> > > org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClien >> >> > t.java:279) >> >> > at >> >> > >> > > org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClien >> >> > t.java:235) >> >> > at >> >> > >> > > org.apache.muse.ws.resource.remote.WsResourceClient.setResourcePropertie >> >> > s(WsResourceClient.java:175) >> >> > at >> >> > >> > > org.apache.muse.ws.resource.remote.WsResourceClient.updateResourceProper >> >> > ty(WsResourceClient.java:202) >> >> > at org.apache.muse.test.wsn.WsnTestClient2.main(Unknown >> > Source) >> >> > ************************************ >> >> > >> >> > >> >> > I then added this to the SubscriptionManager resource in the >> >> > wsn-producer muse.xml file: >> >> > >> >> > >> >> > ************************************* >> >> > <capability> >> >> > >> >> > >> > > <capability-uri>http://docs.oasis-open.org/wsrf/rpw-2/Get</capability-ur >> >> > i> >> >> > >> >> > >> > > <java-capability-class>org.apache.muse.ws.resource.properties.get.impl.S >> >> > impleGetCapability</java-capability-class> >> >> > </capability> >> >> > ************************************ >> >> > >> >> > >> >> > But I still get the same exception. I looked in the source code > for >> >> > anything related to SetResourceProperties but didn't find anything >> >> > helpful. >> >> > I read that the WS-N spec states that the impl can throw an > exception >> > in >> >> > this case, but it also says this is allowed. I am not sure if this > is >> >> > allowable in Muse, but the error message indicates it is possible > by >> >> > adding the correct capability. Also, I am not sure I am doing this >> >> > right. The example I am using is below >> >> > >> >> > >> >> > ******************************* >> >> > package org.apache.muse.test.wsn; >> >> > >> >> > import javax.xml.namespace.QName; >> >> > >> >> > import java.net.InetAddress; >> >> > import java.net.URI; >> >> > import java.net.UnknownHostException; >> >> > >> >> > import org.apache.muse.ws.addressing.EndpointReference; >> >> > import >> >> > org.apache.muse.ws.notification.remote.NotificationProducerClient; >> >> > import org.apache.muse.ws.notification.remote.SubscriptionClient; >> >> > import org.apache.muse.ws.notification.impl.*; >> >> > import org.apache.muse.ws.notification.WsnConstants; >> >> > import org.apache.muse.util.xml.*; >> >> > >> >> > >> >> > public class WsnTestClient2 >> >> > { >> >> > public static URI getLocalAddress(String contextPath, int port) >> >> > throws UnknownHostException >> >> > { >> >> > String ip = InetAddress.getLocalHost().getHostAddress(); >> >> > >> >> > StringBuffer address = new StringBuffer(); >> >> > address.append("http://"); >> >> > address.append(ip); >> >> > address.append(':'); >> >> > address.append(port); >> >> > >> >> > if (contextPath.charAt(0) != '/') >> >> > address.append('/'); >> >> > >> >> > address.append(contextPath); >> >> > >> >> > return URI.create(address.toString()); >> >> > } >> >> > >> >> > public static void main(String[] args) >> >> > { >> >> > try >> >> > { >> >> > // >> >> > // change these to point to different > applications/servers >> >> > // >> >> > String webAppRoot = "/isr-producer/services"; >> >> > int producer_port = >> >> > Integer.parseInt(System.getProperty("producer_port","8080")); >> >> > int consumer_port = >> >> > Integer.parseInt(System.getProperty("consumer_port","8080")); >> >> > >> >> > // >> >> > // create producer EPR/client, and use it to subscribe >> >> > // the consumer to all messages >> >> > // >> >> > >> >> > String contextPath = webAppRoot + "/IsrResource"; >> >> > URI address = (args.length == 0) ? >> >> > getLocalAddress(contextPath, >> >> > producer_port) : URI.create(args[0] + contextPath); >> >> > EndpointReference epr = new EndpointReference(address); >> >> > >> >> > webAppRoot = "/isr-consumer/services"; >> >> > contextPath = webAppRoot + "/IsrConsumer"; >> >> > address = getLocalAddress(contextPath, consumer_port); >> >> > EndpointReference consumer = new >> > EndpointReference(address); >> >> > >> >> > // >> >> > // null filter == send all messages to consumer >> >> > // >> >> > NotificationProducerClient producer = new >> >> > NotificationProducerClient(epr); >> >> > producer.setTrace(true); >> >> > >> >> > SubscriptionClient subscription = null; >> >> > >> >> > while( true ) >> >> > { >> >> > System.out.println( "s - subscribe, u - > unsubscribe, v >> > - >> >> > view, q - quit" ); >> >> > >> >> > char choice = (char)System.in.read(); >> >> > >> >> > if( choice == 's' ) >> >> > { >> >> > subscription = producer.subscribe(consumer, > null, >> >> > null); >> >> > } >> >> > else if( choice == 'u' ) >> >> > { >> >> > subscription.destroy(); >> >> > } >> >> > else if( choice == 'v' ) >> >> > { >> >> > >> >> > >> > > System.out.println(XmlUtils.toString(subscription.getResourceProperty(Ws >> >> > nConstants.FILTER_QNAME)[0])); >> >> > } >> >> > else if( choice == 'f' ) >> >> > { >> >> > QName messageName = new >> >> > QName("http://ws.apache.org/muse/test/wsrf", "MyTopic", "tns"); >> >> > >> >> > subscription.updateResourceProperty(WsnConstants.FILTER_QNAME, new >> >> > Object[] { new TopicFilter(messageName) }); >> >> > } >> >> > else if( choice == 'q' ) >> >> > { >> >> > break; >> >> > } >> >> > } >> >> > } >> >> > >> >> > catch (Throwable error) >> >> > { >> >> > error.printStackTrace(); >> >> > } >> >> > } >> >> > } >> >> > >> >> > -- >> >> > View this message in context: >> >> > >> > > http://www.nabble.com/Problem-updating-subscription-resource-property.-t >> >> > f3323382.html#a9239032 >> >> > Sent from the Muse User mailing list archive at Nabble.com. >> >> > >> >> > >> >> > > --------------------------------------------------------------------- >> >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> > For additional commands, e-mail: [EMAIL PROTECTED] >> >> > >> >> > > --------------------------------------------------------------------- >> >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> > For additional commands, e-mail: [EMAIL PROTECTED] >> >> > >> >> > >> >> > >> >> >> >> -- >> >> View this message in context: http://www.nabble.com/Problem-updating- >> >> subscription-resource-property.-tf3323382.html#a9239571 >> >> Sent from the Muse User mailing list archive at Nabble.com. >> >> >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> > >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: [EMAIL PROTECTED] >> > >> > >> > >> >> -- >> View this message in context: http://www.nabble.com/Problem-updating- >> subscription-resource-property.-tf3323382.html#a9256210 >> Sent from the Muse User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/Problem-updating-subscription-resource-property.-tf3323382.html#a9256957 Sent from the Muse User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
