use of org.apache.cxf.metrics.MetricsFeature in project cxf by apache.
the class ServerMisc method run.
protected void run() {
Factory factory = new PerRequestFactory(DocLitWrappedCodeFirstServiceImpl.class);
factory = new PooledFactory(factory, 4);
JAXWSMethodInvoker invoker = new JAXWSMethodInvoker(factory);
JaxWsServerFactoryBean factoryBean;
Map<String, Object> properties = new HashMap<>();
properties.put("bus.jmx.usePlatformMBeanServer", Boolean.TRUE);
properties.put("bus.jmx.enabled", Boolean.TRUE);
Bus b = new CXFBusFactory().createBus(null, properties);
setBus(b);
MetricRegistry registry = new MetricRegistry();
CodahaleMetricsProvider.setupJMXReporter(b, registry);
b.setExtension(registry, MetricRegistry.class);
factoryBean = new JaxWsServerFactoryBean();
factoryBean.setBus(b);
factoryBean.setAddress(DOCLIT_CODEFIRST_URL);
factoryBean.setServiceClass(DocLitWrappedCodeFirstServiceImpl.class);
factoryBean.setFeatures(Arrays.asList(new MetricsFeature()));
factoryBean.setInvoker(invoker);
servers.add(factoryBean.create());
factoryBean = new JaxWsServerFactoryBean();
factoryBean.setBus(b);
factoryBean.setAddress(DOCLIT_CODEFIRST_URL_XMLBINDING);
factoryBean.setServiceClass(DocLitWrappedCodeFirstServiceImpl.class);
factoryBean.setFeatures(Arrays.asList(new MetricsFeature()));
factoryBean.setInvoker(invoker);
factoryBean.setBindingId("http://cxf.apache.org/bindings/xformat");
factoryBean.setWsdlURL("cxf6866.wsdl");
servers.add(factoryBean.create());
factoryBean = new JaxWsServerFactoryBean();
factoryBean.setAddress(DOCLIT_CODEFIRST_SETTINGS_URL);
factoryBean.setServiceClass(DocLitWrappedCodeFirstServiceImpl.class);
factoryBean.setInvoker(invoker);
factoryBean.getServiceFactory().setAnonymousWrapperTypes(true);
factoryBean.getServiceFactory().getServiceConfigurations().add(0, new AbstractServiceConfiguration() {
public Boolean isWrapperPartNillable(MessagePartInfo mpi) {
return Boolean.TRUE;
}
public Long getWrapperPartMinOccurs(MessagePartInfo mpi) {
return Long.valueOf(1L);
}
});
servers.add(factoryBean.create());
// Object implementor4 = new DocLitWrappedCodeFirstServiceImpl();
// endpoints.add(Endpoint.publish(DOCLIT_CODEFIRST_URL, implementor4));
Object implementor7 = new DocLitBareCodeFirstServiceImpl();
EndpointImpl ep = (EndpointImpl) Endpoint.publish(DOCLITBARE_CODEFIRST_URL, implementor7);
ep.getServer().getEndpoint().getInInterceptors().add(new SAAJInInterceptor());
endpoints.add(ep);
Object implementor6 = new InterfaceInheritTestImpl();
endpoints.add(Endpoint.publish(DOCLIT_CODEFIRST_BASE_URL, implementor6));
Object implementor1 = new AnonymousComplexTypeImpl();
String address = "http://localhost:" + PORT + "/anonymous_complex_typeSOAP";
endpoints.add(Endpoint.publish(address, implementor1));
Object implementor2 = new JaxbElementTestImpl();
address = "http://localhost:" + PORT + "/jaxb_element_test";
endpoints.add(Endpoint.publish(address, implementor2));
Object implementor3 = new OrderedParamHolderImpl();
address = "http://localhost:" + PORT + "/ordered_param_holder/";
endpoints.add(Endpoint.publish(address, implementor3));
// Object implementor4 = new DocLitWrappedCodeFirstServiceImpl();
// endpoints.add(Endpoint.publish(DOCLIT_CODEFIRST_URL, implementor4));
Object implementor5 = new RpcLitCodeFirstServiceImpl();
endpoints.add(Endpoint.publish(RPCLIT_CODEFIRST_URL, implementor5));
endpoints.add(Endpoint.publish("http://localhost:" + PORT + "/InheritContext/InheritPort", new InheritImpl()));
endpoints.add(Endpoint.publish(CXF_5064_URL, new SOAPHeaderServiceImpl()));
}
use of org.apache.cxf.metrics.MetricsFeature in project cxf by apache.
the class Client method run.
@Override
public void run() {
long start = System.currentTimeMillis();
int x = 0;
boolean exceeded = false;
try (Greeter port = service.getSoapPort(new MetricsFeature())) {
port.getRequestContext().put(MetricsProvider.CLIENT_ID, username);
port.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, username);
port.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");
try {
do {
if (doStop) {
break;
}
port.greetMe(username + "-" + x);
x++;
} while (x < 10000);
} catch (javax.xml.ws.WebServiceException wse) {
if (wse.getCause().getMessage().contains("429")) {
// exceeded are allowable number of requests
exceeded = true;
} else {
wse.printStackTrace();
}
}
long end = System.currentTimeMillis();
double rate = x * 1000 / (end - start);
System.out.println(username + " finished " + x + " invocations: " + rate + " req/sec " + (exceeded ? "(exceeded max)" : ""));
try {
// sleep for a few seconds before the client is closed so things can be seen in JMX
Thread.sleep(10000);
} catch (InterruptedException e) {
// ignore
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
Aggregations