配置以编程方式通过CXF发射的码头

问题描述 投票:2回答:1

我使用cxf创建JAX-RS端点时间接启动码头实例

    JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
    sf.setResourceClasses(HelloWorldResource.class);
    sf.setResourceProvider(HelloWorldResource.class, new SingletonResourceProvider(new HelloWorldResource()));
    sf.setAddress("http://localhost:9000/");
    sf.create();

这很好,但是当通过CXF启动码头线程池minThreads和maxThreads时,如何编程设置其大小?

java jetty cxf cxfrs
1个回答
0
投票

您在这里:

    JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
    sf.setResourceClasses(HelloWorldResource.class);
    sf.setResourceProvider(HelloWorldResource.class, new SingletonResourceProvider(new HelloWorldResource()));
        // you need to provide a default configuration
    JettyHTTPServerEngineFactory serverEngineFactory = sf.getBus().getExtension(JettyHTTPServerEngineFactory.class);

    JettyHTTPServerEngine eng = new JettyHTTPServerEngine();
    eng.setPort(0); // with the port zero
    ThreadingParameters defaultThreadingParams = new ThreadingParameters();
    defaultThreadingParams.setMinThreads(5);
    defaultThreadingParams.setMaxThreads(10);
    defaultThreadingParams.setThreadNamePrefix("myjetty");
    eng.setThreadingParameters(defaultThreadingParams);
    serverEngineFactory.setEnginesList(Arrays.asList(eng));

    sf.setResourceProvider(MovieService.class, new SingletonResourceProvider(new MovieService()));
    sf.setAddress("http://localhost:9000/");
    sf.create();

根据我的测试,至少应指定4个线程。

使用CXF 3.3.3测试

© www.soinside.com 2019 - 2024. All rights reserved.