|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
About use factory to create resourceHi,
I tried to use a factory to create a managed resource and then access the resource directly without searching the ServiceGroup. I have modified the wrsf example as following: 1) use WsrMEPMBeanFactory to create a managed resource, ie, WsrMEPMBean, the code is following: public void initializeCompleted() throws SoapFault { super.initializeCompleted(); ResourceManager manager = getResource().getResourceManager(); Resource next = manager.createResource("WsrMEPMBean"); next.initialize(); getLog().warning("WsrMEPMBeanFactoryImpl.initializeCompleted():: WsrMEPMBean address:"+next.getEndpointReference().getAddress()); } 2) rename the WsResource to WsrMEPMBean 3) remove the declarence and implementation of ServiceGroup and ServiceGroupEntry. The log information of client which try to build a WsrServerClient to access "http://127.0.0.1:8086/WsrServer/services/WsrMEPMBean" directly without searching ServiceGroup. The client trace information tells me that the endpoint "http://127.0.0.1:8086/WsrServer/services/WsrMEPMBean" does not exist, while the server information tells me that the resource with address "http://127.0.0.1:8086/WsrServer/services/WsrMEPMBean" is already created. The detailed trace information of client is as following: [CLIENT TRACE] SOAP envelope contents (outgoing): <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://127.0.0.1:8086/WsrServer/services/WsrMEPMBean</wsa:To> <wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/wsrf/rpw-2/GetResourcePropertyDocument/GetResourcePropertyDocumentRequest</wsa:Action> <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:0593b5c8-f369-8188-7674-e76599ba8a94</wsa:MessageID> <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Address>http://www.w3.org/2005/08/addressing/role/anonymous</wsa:Address> </wsa:From> </soap:Header> <soap:Body> <wsrf-rp:GetResourcePropertyDocument xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"/> </soap:Body> </soap:Envelope> [CLIENT 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://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:9ab4845a-7d97-746d-2faf-e68acb554fb4</wsa:MessageID> <wsa:RelatesTo RelationshipType="wsa:Reply" xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:0593b5c8-f369-8188-7674-e76599ba8a94</wsa:RelatesTo> <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Address>http://127.0.0.1:8086/WsrServer/services/WsrMEPMBean</wsa:Address> </wsa:From> </soap:Header> <soap:Body> <soap:Fault> <soap:Code> <soap:Value>soap:Sender</soap:Value> <soap:Subcode xmlns:wsa="http://www.w3.org/2005/08/addressing"> <soap:Value>wsa:DestinationUnreachable</soap:Value> </soap:Subcode> </soap:Code> <soap:Reason> <soap:Text>[ID = 'DestinationUnreachable'] There is no resource available at the given EPR: <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Address>http://127.0.0.1:8086/WsrServer/services/WsrMEPMBean</wsa:Address> </wsa:EndpointReference> The existing EPRs hosted by this endpoint are: <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:ReferenceParameters xmlns:wsa="http://www.w3.org/2005/08/addressing"/> <wsa:Address>http://127.0.0.1:8086/WsrServer/services/WsrMEPMBeanFactory</wsa:Address> </wsa:EndpointReference> </soap:Text> </soap:Reason> </soap:Fault> </soap:Body> </soap:Envelope> org.apache.muse.ws.addressing.soap.SoapFault: [ID = 'DestinationUnreachable'] There is no resource available at the given EPR: <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Address>http://127.0.0.1:8086/WsrServer/services/WsrMEPMBean</wsa:Address> </wsa:EndpointReference> The existing EPRs hosted by this endpoint are: <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:ReferenceParameters xmlns:wsa="http://www.w3.org/2005/08/addressing"/> <wsa:Address>http://127.0.0.1:8086/WsrServer/services/WsrMEPMBeanFactory</wsa:Address> </wsa:EndpointReference> The log information from server is as following: 10:22:03,342 INFO [Server] JBoss (MX MicroKernel) [4.2.2.GA (build: SVNTag=JBos s_4_2_2_GA date=200710221139)] Started in 1m:27s:229ms 10:22:16,140 ERROR [STDERR] 2009-4-27 10:22:16 org.apache.muse.core.SimpleResour ce initialize 信息: [ID = 'ResourceInitialized'] The resource at 'WsrMEPMBean' has been initia lized. 10:22:16,140 ERROR [STDERR] WsrMEPMBeanFactoryImpl.initializeCompleted():: WsrME PMBean address:http://127.0.0.1:8086/WsrServer/services/WsrMEPMBean 10:22:16,140 ERROR [STDERR] 2009-4-27 10:22:16 com._30wish.www.muse.ManagementSe rvice.WsrMEPMBeanFactoryImpl initializeCompleted 10:22:16,140 ERROR [STDERR] 2009-4-27 10:22:16 org.apache.muse.core.SimpleResour ce initialize 信息: [ID = 'ResourceInitialized'] The resource at 'WsrMEPMBeanFactory' has been initialized. 10:22:16,140 ERROR [STDERR] 2009-4-27 10:22:16 org.apache.muse.core.routing.Simp leResourceRouter initialize 信息: [ID = 'RouterIsInitialized'] The resource router has been initialized. Can anyone tell me what's wrong? Thanks. Sara |
|
|
Re: About use factory to create resourceHi Chris,
I search the WsrMEPMBean(managed resource) entry using ServiceGroup and found that the WsrMEPMBean has a resourceId with the value MuseResource-1. What I plan is to use the address 'http://127.0.0.1:8086/WsrServer/services/WsrMEPMBean' without resourceId, so I remove the subdirectory 'WsrMEPMBean' under 'router-entries' directory. Can anyone tell me what else need to be done to access a resource, which generated by a factory, without resourceId? Also, an another question: what should I do if I want to assign the resourceId value by an another class? The muse.xml content is as following: <router> <java-router-class>org.apache.muse.core.routing.SimpleResourceRouter</java-router-class> <logging> <log-file>log/muse.log</log-file> <log-level>FINE</log-level> </logging> <persistence> <java-persistence-class>org.apache.muse.core.routing.RouterFilePersistence</java-persistence-class> <persistence-location>router-entries</persistence-location> </persistence> </router> <resource-type> <context-path>WsrMEPMBean</context-path> <wsdl> <wsdl-file>/wsdl/WsrMEPMBean.wsdl</wsdl-file> <wsdl-port-type xmlns:pfx="http://www.30wish.com/muse/ManagementService">pfx:WsrMEPMBeanPortType</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> ... ... Thanks. Sara |
| Free embeddable forum powered by Nabble | Forum Help |