以编程方式配置通过 CXF 启动的码头

使用 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 的大小?


杨魅力
浏览 77回答 1
1回答

凤凰求蛊

给你:    JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();        // 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(HelloWorldResource.class, new SingletonResourceProvider(new HelloWorldResource()));    sf.setAddress("http://localhost:9000/");    sf.create();根据我的测试,至少应该指定 4 个线程。使用 CXF 3.3.3 测试
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java