Did you try putting the jmx stuff before the endpoint bean? I'm wondering if the endpoint is created before the Insrumentation manager is added and thus the InstrumentationManager doesn't know about it.

Dan


On Jul 31, 2008, at 10:54 AM, Ryadh Amar wrote:


Hi all,
I am trying to expose a service endpoint via jmx to be able to interact with
it via jconsole.
So I apply what is described here :
http://cwiki.apache.org/confluence/display/CXF20DOC/JMX+Management How to
enable the CXF instrumentationManager
It seems I never manage to register the enpoint, in the console, I only see Bus under the org.apache.cxf (in the MBeans tab), in the provided link, I should also be able to see Bus.Service.Endpoint, which obviously is not the
case.
Here is my cxf-config.xml file:
============================
<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xmlns:jaxws="http://cxf.apache.org/jaxws";
        xsi:schemaLocation="
           http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd";>

        <import resource="classpath:META-INF/cxf/cxf.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

        <!-- implementation of the webservice -->
        <bean id="calculatorServiceEndpoint"
                class="org.dyndns.crouille.cxf.CalculatorImpl" />

        <!-- export the webservice using jaxws -->
        <jaxws:endpoint id="calculatorService"
                implementor="#calculatorServiceEndpoint" address="/calculator"
                endpointName="s:calculatorPort" 
serviceName="s:calculatorService"
                xmlns:s="http://cxf.apache.org"; />

        <!-- jmx configuration -->
        <bean id="org.apache.cxf.management.InstrumentationManager"
                
class="org.apache.cxf.management.jmx.InstrumentationManagerImpl">
                <property name="bus" ref="cxf" />
                <property name="enabled" value="true" />
                <property name="threaded" value="false" />
                <property name="daemon" value="false" />
                <property name="JMXServiceURL"
                        
value="service:jmx:rmi:///jndi/rmi://localhost:9914/jmxrmi" />
        </bean>
</beans>
===========================
Here is my annotated implementation of the service endpoint:
============================
package org.dyndns.crouille.cxf;

import javax.management.JMException;
import javax.management.ObjectName;

import org.apache.cxf.management.ManagedComponent;
import org.apache.cxf.management.annotation.ManagedNotification;
import org.apache.cxf.management.annotation.ManagedNotifications;
import org.apache.cxf.management.annotation.ManagedOperation;
import org.apache.cxf.management.annotation.ManagedResource;

@ManagedResource(componentName = "CalculatorImpl", description = "My Managed
Bean",
       persistPolicy = "OnUpdate", currencyTimeLimit = 15 ,
       log = false ,
       logFile = "jmx.log", persistPeriod = 200,
       persistLocation = "/local/work", persistName = "bar.jmx")
@ManagedNotifications([EMAIL PROTECTED](name = "My Notification",
                                  notificationTypes = {"type.foo",
"type.bar" }) })

public class CalculatorImpl implements CalculatorService, ManagedComponent {
        @ManagedOperation(description = "Add Two Numbers Together")
        public String add(String a, String b) {
                // TODO Auto-generated method stub
                return 
String.valueOf((Integer.parseInt(a)+Integer.parseInt(b)));
        }

        @ManagedOperation(description = "Multiply Two Numbers Together")
        public String multiply(String a, String b) {
                // TODO Auto-generated method stub
                return 
String.valueOf((Integer.parseInt(a)*Integer.parseInt(b)));
        }

        public ObjectName getObjectName() throws JMException {
                // TODO Auto-generated method stub
                return new ObjectName("org.apache.cxf:type=CalculatorImpl");

        }

}
==============================
I am wondering, since I started java first development, does have any direct relation with what I encountering?, maybe this feature doesn't apply to all
type of services?
Thanks in advance for looking into my problem.
Ryadh.
--
View this message in context: 
http://www.nabble.com/CXF-and-JMX-tp18756410p18756410.html
Sent from the cxf-user mailing list archive at Nabble.com.


---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog




Reply via email to