gpt4 book ai didi

java - 无法从服务类加载 ServletContextHandler 上的 contextConfigLocation 类

转载 作者:太空宇宙 更新时间:2023-11-04 09:48:48 24 4
gpt4 key购买 nike

我有一个带有 Spring 的项目和一些服务。我正在尝试在其中包含一些休息服务。问题是嵌入式 jetty 服务器位于 @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/资源注册了两次。

我确定我不明白一些事情:)

最佳答案

找到了!

@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();
}

关于java - 无法从服务类加载 ServletContextHandler 上的 contextConfigLocation 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55072237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com