Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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 无法从WAS Liberty server中部署的Spring启动应用程序访问JNDI Url上下文_Java_Spring Boot_Jndi_Websphere Liberty_Open Liberty - Fatal编程技术网

Java 无法从WAS Liberty server中部署的Spring启动应用程序访问JNDI Url上下文

Java 无法从WAS Liberty server中部署的Spring启动应用程序访问JNDI Url上下文,java,spring-boot,jndi,websphere-liberty,open-liberty,Java,Spring Boot,Jndi,Websphere Liberty,Open Liberty,我在WAS Liberty server(WebSphere application server版本8.5.5.9 Liberty概要)中部署了一个spring boot web应用程序 我在server.xml中添加了一个JNDI url条目,如下所示,但api中的一个类无法访问它 <jndiURLEntry jndiName="url/SSOService" value="http://ssoserver.dev.intranet/SSOService/SSOFacade" />

我在WAS Liberty server(WebSphere application server版本8.5.5.9 Liberty概要)中部署了一个spring boot web应用程序

我在server.xml中添加了一个JNDI url条目,如下所示,但api中的一个类无法访问它

<jndiURLEntry jndiName="url/SSOService" value="http://ssoserver.dev.intranet/SSOService/SSOFacade" />

我在Liberty中发现了一件奇怪的事情:每当我将java:comp/env/添加到任何JNDI条目时,应用程序都无法选择它并获取javax.naming.NameNotFoundException:

我通过不添加前缀修复了数据源问题,但上面的URL仅用于不在我控制范围内的api

那么,我们如何在WebSphereLiberty服务器中启用java:com/env前缀呢?
或者,是否有其他方法可以使其工作?

当您以以下方式定义JNDI URL条目时:

<jndiURLEntry jndiName="url/SSOService" value="..."/>
在这个例子中,我们说:

  • 直接查找
    url/SSOService
  • 将该对象绑定到
    java:comp/env/url/SSOServiceRef

  • 你看到了吗?你的例子看起来很合理。也许创建一个测试端点,看看是否可以在自己的代码中查找资源。也许API需要的是字符串而不是URL实例?感谢您的输入,我在本地机器上托管的tomcat中有相同的代码可以正常工作。它能够正确地检索JNDI,但在WAS Liberty中部署时却不能。它跳过前缀“java:comp/env/”。在tomcat中,如果没有前缀,它将不工作。我已经浏览了几乎所有的websphere网站,包括您提到的网站,但没有找到任何清晰的线索。最后,我将尝试获取
    url/SSOService
    ,并将其绑定到
    java:comp/env/url/SSOServiceRef
    ,然后将结果发布到这里。嗨,安迪,我尝试绑定对象,但遇到另一个错误初始上下文为只读,因此无法继续。有什么想法吗。
    @Resource(lookup="url/SSOService", name="url/SSOServiceRef")
    URL ssoServiceURL;