« Return to Thread: Question of realizing Metric Capability

Question of realizing Metric Capability

by SARA1232007 :: Rate this Message:

Reply to Author | View in Thread

Hi,

I've tried to realize a metric capability following the guidiance provided by muse refernce manual, but failed to do this.

I have defined my metric in rmd file as following:

<?xml version="1.0"?>
<Definitions xmlns="http://docs.oasis-open.org/wsrf/rmd-1" >

        <MetadataDescriptor xmlns:wsrl="http://docs.oasis-open.org/wsrf/rl-2"
                                                xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2.xsd"
                        xmlns:myns="http://www.30wish.com/muse/ManagementInterface" name="WsrMEPMBeanMetadata"
                            interface="myns:WsrMEPMBeanPortType"
                            wsdlLocation="http://www.30wish.com/muse/ManagementInterface WsrMEPMBean.wsdl" >
                           
                <Property name="muws2:CurrentTime" modifiability="read-only" mutability="mutable" />
               
                <!--
                <Property name="wsrl:TerminationTime" modifiability="read-only" mutability="mutable" />
                -->
               
                <Property name="myns:MEPMBeanMetrics" modifiability="read-only" mutability="mutable">
                        <muws2:Capability>http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics</muws2:Capability>
                        <muws2:TimeScope>Interval</muws2:TimeScope>
                        <muws2:GatheringTime>Periodic</muws2:GatheringTime>
                        <muws2:CalculationInterval>1 Minute</muws2:CalculationInterval>
                </Property>
                               
        </MetadataDescriptor>
       
</Definitions>

Also, my wsdl definition is as following:

... ...
        <wsdl:types>
... ...
                <xsd:schema
                        elementFormDefault="qualified"
                        targetNamespace="http://www.30wish.com/muse/ManagementInterface">
                       
                        <xsd:element name="MEPMBeanMetrics">
                                <xsd:complexType>
                                        <xsd:sequence>
                                                <xsd:element name="Metrics" >
                                                        <xsd:complexType>
                                                                <xsd:sequence>
                                                                        <xsd:element name="MaxProcessingTime"  type="xsd:long" />
                                                                        <xsd:element name="AverageProcessingTime"  type="xsd:long" />
                                                                        <xsd:element name="StartTime"  type="xsd:date" />
                                                                        <xsd:element name="ResponseCount"  type="xsd:long" />
                                                                        <xsd:element name="MinProcessingTime"  type="xsd:long" />
                                                                        <!--xsd:element name="RecordProcessors"  type="xsd:long" /-->
                                                                        <xsd:element name="TotalProcessingTime"  type="xsd:long" />
                                                                        <xsd:element name="RequestCount"  type="xsd:long" />
                                                                        <xsd:element name="FaultCount"  type="xsd:long" />
                                                                </xsd:sequence>
                                                        </xsd:complexType>
                                                </xsd:element>
                                        </xsd:sequence>
                                </xsd:complexType>
                        </xsd:element>
                       
                        <xsd:element name="WsrMEPMBeanProperties">
                                <xsd:complexType>
                                        <xsd:sequence>
                                                <xsd:element name="Identity"  type="xsd:string" />
                                                <xsd:element xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2.xsd" ref="muws2:CurrentTime"/>
                                                <xsd:element ref="wsrf-rl:TerminationTime" />
                                                <xsd:element ref="wsrf-rp:QueryExpressionDialect" minOccurs="0" maxOccurs="unbounded"/>
                                                <xsd:element ref="tns:MEPMBeanMetrics"/>
                                        </xsd:sequence>
                                </xsd:complexType>
                        </xsd:element>
                </xsd:schema>
        </wsdl:types>
... ...
        <wsdl:service name="WsrMEPMBeanService">
    <wsdl:port name="WsrMEPMBeanPort" binding="tns:WsrMEPMBeanBinding">
    <wsdl-soap:address location="http://localhost:8086/ManagementService/WsrMEPMBean"/>
    </wsdl:port>
        </wsdl:service>


My client code:

            URI address = "http://127.0.0.1:8086/ManagementService/WsrMEPMBean";
            EndpointReference epr = new EndpointReference(address);

            MetricsClient client = new MetricsClient(epr);
            client.setTrace(true);
            Map metrics = new HashMap();

            QName name = new QName(
                    "http://www.30wish.com/muse/ManagementInterface",
                    "MEPMBeanMetrics", "myns");
            String[] values = (String[]) client.getPropertyAsObjectAndMetrics(
                    name, String.class, metrics);

            System.out.println("The property values are: ");

            for (int n = 0; n < values.length; ++n)
                System.out.println(values[n]);


I have deployed the war onto JBoss successfully. After I run client, I get trace information from client but there is no response information I get from the JBoss server. The information get I from client is 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/ManagementService/WsrMEPMBean</wsa:To>
        <wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest</wsa:Action>
        <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:6045ae9d-5edf-f156-489c-c2f8d2fe013a</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:GetResourceProperty
            xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2" xmlns:myns="http://www.30wish.com/muse/ManagementInterface">myns:MEPMBeanMetrics</wsrf-rp:GetResourceProperty>
    </soap:Body>
</soap:Envelope>

[Fatal Error] :1:1025: The element type "HR" must be terminated by the matching end-tag "</HR>".
org.apache.muse.ws.addressing.soap.SoapFault: The element type "HR" must be terminated by the matching end-tag "</HR>".
        at org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClient.java:298)
        at org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClient.java:254)
        at org.apache.muse.ws.resource.remote.WsResourceClient.getResourceProperty(WsResourceClient.java:138)
        at org.apache.muse.ws.dm.muws.remote.MetricsClient.getResourcePropertyAndMetrics(MetricsClient.java:103)
        at org.apache.muse.ws.dm.muws.remote.MetricsClient.getPropertyAsObjectAndMetrics(MetricsClient.java:84)
        at org.apache.muse.test.wsrServer.WsrServerClient.main(WsrServerClient.java:203)

Also what needs to be mention is the muse.xml generated by wsdl file does not contain the metrics capability.

Could anyone tell me what's wrong? Also, what should be done if I want to provide my own metrics capability implementation class?

Any help is very much appreicated!

Sara

 « Return to Thread: Question of realizing Metric Capability