当前位置: 首页 > 知识库问答 >
问题:

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

平山
2023-03-14

我已经在WAS Liberty server(WebSphere application server Version8.5.5.9Liberty Profile)中部署了一个spring boot web应用程序。

我在server.xml中添加了一个JNDI url条目,下面给出了这个条目,但是我在api中的一个类无法访问它。

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

我在Liberty中发现了一个奇怪的事情,即每当我向任何JNDI条目添加java:comp/env/时,application都无法选择它,并获得javax.naming.NameNotFoundException:

共有1个答案

沈建柏
2023-03-14

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

<jndiURLEntry jndiName="url/SSOService" value="..."/>

它将使java.net.urlurl/ssoservice名称中可用(即没有java:前缀)。从这个位置查找JNDI条目称为“直接查找”,因为您正在查找直接在服务器配置中定义的内容。

如果要在java:comp/env/命名空间中注册,必须定义一个“资源引用”,它将创建从服务器定义的条目到java:comp/env/条目的绑定。可以通过注释定义资源引用,也可以通过web.xml定义资源引用。

@Resource(lookup="url/SSOService", name="url/SSOServiceRef")
URL ssoServiceURL;
    null
 类似资料:
  • 我正试图在heroku上部署一个dropwizard应用程序,但它无法启动。在本地使用“gradle run server config.yml”可以很好地工作 我正在使用gradle进行构建,当我推到heroku时,构建就成功了。我的分级阶段任务依赖于清洁和罐子(胖罐子创建) 我的Procfile有: 我试过没有成功 Web:java$java_opts-jar build/libs/dropw

  • 我正在同时试验Spring boot和openshift,不幸的是,我遇到了一个我无法找到的问题。 我用Spring启动的初始值设定项创建了一个应用程序。创建了几个Rest控制器(你好,世界喜欢) 这是我的应用程序(主) 我可以在本地启动应用程序(通过智能和冬虫)。我可以看到应用程序日志记录并访问所有endpoint,没有任何问题。 pom.xml是这样的: 因此,根据我的理解,WAR文件是根据O

  • 完成干净的构建后,我将war文件复制到Tomcat的文件夹中。但是部署会发生两次,并且在上下文已经存在的情况下以异常结束。我错过了什么? 非常感谢您的帮助。

  • Wildfly 8.2。0.期末考试 最近我升级了以下内容: 从Windows 7到Windows 10 从日蚀火星到日蚀火星更新1 来自JBoss工具4.3.0。从Beta1到JBoss工具4.3.0。最终 现在,当我试图在Eclipse中部署我的应用程序时,它不再工作了(有时它工作,但大多数时候它不工作)。在升级之前,一切都运行良好,但是现在我在部署应用程序时得到了这个堆栈跟踪(在这里你可以读

  • 在我解释这个问题之前,我只想指出,我对NetBeans和Tomcat完全陌生,我正在做一个学校项目。话虽如此,但问题正是如题所言。下面是我尝试运行一个简单的Hello World jsp时的输出: 在C:\User\lostl\OneDrive\Documents\NetBeansProjects\Project3\build\web部署正在进行中...部署?config=file:/C:/Use

  • 我是kubernetes的新手,我尝试使用Kubernete运行小型应用程序。我创建了docker镜像并使用minikube运行它。所以应用程序非常简单,它只打印hello world。 我的dockerfile文件: deployment.yaml 我运行命令: 创建deployment.yaml 输出是: 服务/myhelloworldservice已创建 创建的部署.apps/我的问候世界