Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t从服务类在ServletContextHandler上加载contextConfigLocation类_Java_Spring_Rest_Jetty_Cxf - Fatal编程技术网

Java Can';t从服务类在ServletContextHandler上加载contextConfigLocation类

Java Can';t从服务类在ServletContextHandler上加载contextConfigLocation类,java,spring,rest,jetty,cxf,Java,Spring,Rest,Jetty,Cxf,我有一个Spring项目和一些服务。我正在尝试在其中包含一系列rest服务。问题是嵌入式jetty服务器位于@Service实例中,出于许多原因,我无法触摸它。因此,我尝试用我的新需求配置该服务器,但我不能 我尝试过在项目逻辑之外使用经典的方法进行放弃,它是有效的: public class Starter { public static void main( final String[] args ) throws Exception { Server server = new Ser

我有一个Spring项目和一些服务。我正在尝试在其中包含一系列rest服务。问题是嵌入式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中修改以包含rest所需的类,但在这种情况下,/api/resource注册了两次

我肯定我不明白什么:)

找到了

@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();
}
@Bean
@德彭森(“cxf”)
公共服务器jaxRsServer(){
JAXRSServerFactoryBean工厂=RuntimeDelegate.getInstance().createEndpoint(JAXRSPIApplication(),JAXRSServerFactoryBean.class);
factory.setBus(cxf());//asList(peopleRestService());
setProviders(数组。asList(jsonProvider());
返回factory.create();
}
找到了

@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();
}
@Bean
@德彭森(“cxf”)
公共服务器jaxRsServer(){
JAXRSServerFactoryBean工厂=RuntimeDelegate.getInstance().createEndpoint(JAXRSPIApplication(),JAXRSServerFactoryBean.class);
factory.setBus(cxf());//asList(peopleRestService());
setProviders(数组。asList(jsonProvider());
返回factory.create();
}