Hi Dan,
ok, I think I really was (and still am) heading in the wrong direction. My
problem is: When I'm not adding a wsrf-sg:Content property to the Resource
to be added I get the following Exception:
java.lang.RuntimeException: [ID = 'PropertyNotInSchema'] There is no
property named '{http://docs.oasis-open.org/wsrf/sg-2}Content' defined in
the schema. A property should not have any operations or metadata applied
to it if it is not in the WS-RP document.
at org.apache.muse.ws.resource.sg.impl.AddRequest.toXML(
AddRequest.java:151)
at org.apache.muse.ws.resource.sg.impl.AddRequest.toXML(
AddRequest.java:120)
at org.apache.muse.ws.resource.sg.remote.ServiceGroupClient.add(
ServiceGroupClient.java:81)
at org.apache.muse.test.wsn.WsnTestClient.main(WsnTestClient.java:88)
Caused by: org.apache.muse.ws.addressing.soap.SoapFault: [ID =
'PropertyNotInSchema'] There is no property named
'{http://docs.oasis-open.org/wsrf/sg-2}Content' defined in the schema. A
property should not have any operations or metadata applied to it if it is
not in the WS-RP document.
at org.apache.muse.core.AbstractResourceClient.invoke(
AbstractResourceClient.java:254)
at
org.apache.muse.ws.resource.remote.WsResourceClient.getResourceProperty(
WsResourceClient.java:134)
at org.apache.muse.ws.resource.sg.impl.AddRequest.toXML(
AddRequest.java:144)
... 3 more
That's why I thought I have to add the Content property. For testing I
added the following code to the WsnTestClient to add the producer-resource
to my ServiceGroup
//... existing code ...
producer.subscribe(consumer, null, null);
EndpointReference groupEpr = new EndpointReference(getLocalAddress(
"/Registry/services/ServiceGroup", 8080));
ServiceGroupClient sg = new ServiceGroupClient(groupEpr);
sg.setTrace(true);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR_OF_DAY, 1);
sg.add(producer.getEndpointReference(),cal.getTime()); // (this is line 88
from the Exception)
My ServiceGroup works with other Resources that have a wsrf-sg:Content
property.
thx,
Christian
Daniel Jemiolo
<[EMAIL PROTECTED]
m.com> To
[email protected]
15.11.2006 13:55 cc
Subject
Please respond to Re: WSN-Producer example with
[EMAIL PROTECTED] wsrf-sg:Content property
he.org
Hi,
I think you might be misunderstanding how resources are evaluated for
service group membership. Resource that are potential service group
members have a list of properties (WSRP doc), and the service group
resource has a set of membership content rules which are also a list of
properties. In the latter case, the list signifies which properties a
resource must have in order to become a service group member. When the
WSSG Add operation is invoked, if the service group determines that they
resource has the properties that are in its membership content rules, then
it will create a third resource: a service group entry. The service group
entry has a property named wsrf-sg:Content, and it contains the actual
values of the resource properties that are in the MCR list.
Here's an example:
Let's say I want a service group that will only contain WSDM-enabled
resources. WSDM requires that all manageable resources have a
muws1:ResourceId property, so my service group will have a membership
content rule that lists muws1:ResourceId. In the RMD doc for the service
group resource, I add:
<Property>
<InitialValues>
<wsrf-sg:MembershipContentRule ContentElements="muws1:ResourceId"
xmlns:muws1="..." xmlns:wsrf-sg="..."/>
</InitialValues>
</Property>
After initialization, I try to add a ws-resource that has the
muws1:ResourceId property in its WSRP doc. When I do this, a service group
entry will be created. It will have three properties:
1. ServiceGroupEPR - The EPR of the service group that this entry belongs
to.
2. MemberEPR - The EPR of the ws-resource we're adding.
3. Content - The value of the member's muws1:ResourceId property, which I
got dynamically via GetResourceProperty().
So, you should be most concerned with setting the MCRs (declaratively in
RMD or programmatically - I recommend declaratively). Is this more clear?
Dan
Christian Ewers <[EMAIL PROTECTED]> wrote on 11/15/2006 04:27:18 AM:
>
> Hi,
> I'm trying to extend the wsn-producer example by adding the WS-Resource
to
> a remote ServiceGroup.
> For doing so, I added the wsrf-sg:Content property to the existing
resource
> properties, extended the MyCapabilityImpl.java class by adding the
> getContent(), setContent(Element e) methods and I added the
WssgConstants.
> CONTENT_QNAMEto the _PROPERTIESarray.
>
> Property in the WSDL-File:
>
> <xsd:element ref="wsrf-sg:Content" minOccurs="0" maxOccurs="1"/>
>
> I added the following test-content to the WsResource.rmd file (also
added
> the wsrf-sg namespace)
>
> <Property name="wsrf-sg:Content" modifiability="read-write" mutability=
> "mutable">
> <InitialValues>
> <wsrf-sg:Content>
> <wsrf-sg:RPDoc>
> <myns:ServerName>TestServerName</myns:ServerName>
> </wsrf-sg:RPDoc>
> </wsrf-sg:Content>
> </InitialValues>
> </Property>
>
> Now I'm getting the following exception when initializing the resource
by
> using the WsnTestclient. I didn't add any ServiceGroup related code so
far.
>
> java.lang.NullPointerException
> at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown
Source)
> at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown
Source)
> at
> org.apache.muse.ws.notification.properties.ResourcePropertyChangeEvent.
> toXML(ResourcePropertyChangeEvent.java:97)
> at
> org.apache.muse.ws.notification.properties.ResourcePropertyChangeEvent.
> toXML(ResourcePropertyChangeEvent.java:80)
> at
> org.apache.muse.ws.notification.impl.SimpleNotificationProducer.
> publish(SimpleNotificationProducer.java:452)
> at
> org.apache.muse.ws.notification.properties.ChangeNotificationListener.
> propertyChanged(ChangeNotificationListener.java:99)
> at
>
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.
> changeCompleted(SimpleResourcePropertyCollection.java:337)
> at
>
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.
> insertResourceProperty(SimpleResourcePropertyCollection.java:718)
> at
>
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.
> insertResourceProperty(SimpleResourcePropertyCollection.java:681)
> at
>
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.
> addInitialValues(SimpleResourcePropertyCollection.java:169)
> at
>
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.
> applyMetadata(SimpleResourcePropertyCollection.java:297)
> at
>
org.apache.muse.ws.resource.impl.SimpleWsResource.initialize(SimpleWsResource.java:215)
> at
> org.apache.muse.core.routing.RouterFilePersistence.
> reloadResource(RouterFilePersistence.java:139)
> at
> org.apache.muse.core.AbstractFilePersistence.
> reloadResources(AbstractFilePersistence.java:393)
> at
>
org.apache.muse.core.AbstractFilePersistence.reload(AbstractFilePersistence.java:334)
> at
> org.apache.muse.core.routing.SimpleResourceRouter.
> initialize(SimpleResourceRouter.java:248)
> at
> org.apache.muse.core.platform.AbstractIsolationLayer.
> initialize(AbstractIsolationLayer.java:176)
> at
> org.apache.muse.core.platform.axis2.AxisIsolationLayer.
> setOperationContext(AxisIsolationLayer.java:138)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
>
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.axis2.engine.DependencyManager.
> configureBusinessLogicProvider(DependencyManager.java:70)
> at
> org.apache.axis2.receivers.RawXMLINOutMessageReceiver.
> invokeBusinessLogic(RawXMLINOutMessageReceiver.java:79)
> at
> org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.
> receive(AbstractInOutSyncMessageReceiver.java:39)
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:504)
> at
> org.apache.axis2.transport.http.HTTPTransportUtils.
> processHTTPPostRequest(HTTPTransportUtils.java:324)
> at
> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:234)
> 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.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.
> processConnection(Http11BaseProtocol.java:664)
> at
>
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.
> runIt(LeaderFollowerWorkerThread.java:80)
> at
>
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
>
> What am I doing wrong?
>
> Thx,
> Christian
>
>
> ---------------------------------------------------------------------
> 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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]