我正在使用CXF Local Tranport进行测试,遵循本教程:
https://cwiki.apache.org/confluence/display/CXF20DOC/JAXRS+Testing
但是我收到了这个错误: javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者在applet参数中指定类名,或者在应用程序资源文件中指定:java.naming.factory .initial
这是我在创建本地服务器时尝试过的一段代码:
private static void startServer() throws Exception {
JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean();
factory.setAddress(ENDPOINT_ADDRESS);
List<Class<?>> resourceClasses = new ArrayList<Class<?>>();
// ..
factory.setResourceClasses(resourceClasses);
List<ResourceProvider> resourceProviders = new ArrayList<>();
// ..
factory.setResourceProviders(resourceProviders);
final Hashtable<String, Object> jndiProperties = new Hashtable<String, Object>();
jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
final Context context = new InitialContext(jndiProperties);
List<Object> providers = new ArrayList<Object>();
providers.add(context);
// ..
factory.setProviders(providers);
server = factory.create();
server.start();
}
但它不起作用。
我使用WebClient测试jax-rs Web服务(请参阅教程),但是当服务器启动此代码时,它会引发异常: //网络服务方法
javax.naming.Context initialContext = new InitialContext();
TMM tmm = (TMM) initialContext.lookup("java:app/cos/TMM");