【问题标题】:Can't load contextConfigLocation class on ServletContextHandler from a Service Class无法从服务类加载 ServletContextHandler 上的 contextConfigLocation 类
【发布时间】:2019-03-08 23:06:59
【问题描述】:

我有一个包含 Spring 和几个服务的项目。我正在尝试在其中包含一堆休息服务。问题是嵌入式码头服务器位于 @Service 实例中,由于许多原因我无法触摸它。因此,我尝试使用我的新要求配置该服务器,但我不能。

我已经尝试在项目逻辑之外使用经典方法进行丢弃,并且它有效:

public class Starter {
public static void main( final String[] args ) throws Exception {
    Server server = new Server( 8888 );

    // Register and map the dispatcher servlet
    final ServletHolder servletHolder = new ServletHolder( new CXFServlet() );
    final ServletContextHandler context = new ServletContextHandler();      
    context.setContextPath( "/" );
    context.addServlet( servletHolder, "/rest/*" );     
    context.addEventListener( new ContextLoaderListener() );

    context.setInitParameter( "contextClass", AnnotationConfigWebApplicationContext.class.getName() );
    context.setInitParameter( "contextConfigLocation", AppConfig.class.getName() );

    server.setHandler( context );
    server.start();
    server.join();  
}

}

但是,如果我尝试在 spring 上下文服务中做同样的事情,它就行不通了。

如果我在其中使用相同的初始化,我会得到:

WARN  Can't find the the request for http://localhost:8888/rest/api/people's Observer 

我尝试在 applicationContext.xml 中进行修改以包含其余需要的类,但在这种情况下 /api/ 资源被注册了两次。

我确定我没有理解某些东西:)

【问题讨论】:

    标签: java spring rest jetty cxf


    【解决方案1】:

    找到了!

    @Bean 
    @DependsOn( "cxf" )
    public Server jaxRsServer() {
        JAXRSServerFactoryBean factory = RuntimeDelegate.getInstance().createEndpoint( jaxRsApiApplication(), JAXRSServerFactoryBean.class );
        factory.setBus(cxf()); // <-- THIS!
        factory.setServiceBeans( Arrays.< Object >asList( peopleRestService() ) );
        factory.setProviders( Arrays.< Object >asList( jsonProvider() ) );
        return factory.create();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 2018-06-23
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多