我试图从运行在WebSphere7上的web应用程序中调用SAP web服务。
客户机是从WSDL生成的,我使用JNDI查找来查找服务。查找失败,出现NameNotFoundException
。
网状物xml:
<service-ref>
<description>
WSDL Service ZSDWebAddressPrinting</description>
<service-ref-name>service/ZSDWebAddressPrinting</service-ref-name>
<service-interface>sap_com.document.sap.soap.functions.mc_style.ZSDWebAddressPrinting_Service</service-interface>
<wsdl-file>WEB-INF/wsdl/ZSDWebAddressPrinting.wsdl</wsdl-file>
<jaxrpc-mapping-file>WEB-INF/ZSDWebAddressPrinting_mapping.xml</jaxrpc-mapping-file>
<service-qname xmlns:pfx="urn:sap-com:document:sap:soap:functions:mc-style">
pfx:ZSDWebAddressPrinting</service-qname>
<port-component-ref>
<service-endpoint-interface>sap_com.document.sap.soap.functions.mc_style.ZSDWebAddressPrinting_PortType</service-endpoint-interface>
</port-component-ref>
</service-ref>
JNDI查找:
InitialContext ctx = new InitialContext();
return (Service)ctx.lookup("java:comp/env/service/ZSDWebAddressPrinting");
例外情况:
[10.12.14 10:24:03:645 CET] 00000024 SystemOut O |2014-12-10 10:24:03,645|ERROR|r : 0|ws.WebServiceLocator.getService - Lookup of service reference with jndi name = ZSDWebAddressPrinting failed !
javax.naming.NameNotFoundException: Name comp/env/service not found in context "java:".
at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1837)
at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1166)
at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1095)
at com.ibm.ws.naming.urlbase.UrlContextImpl.lookup(UrlContextImpl.java:1235)
at com.ibm.ws.naming.java.javaURLContextImpl.lookup(javaURLContextImpl.java:395)
at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:221)
at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:161)
at javax.naming.InitialContext.lookup(InitialContext.java:436)
at com.acme.ws.WebServiceLocator.getService(WebServiceLocator.java:26)
我已经使用Dumpnamesspace
来显示所有的名称,但是我看不到ZSDWebAddressPrting
。
有许多JDBC资源也可以通过JNDI访问。这些在垃圾堆中可见,工作正常。
我忘了什么吗?
将类加载从PARENT_LAST
更改为PARENT_FIRST
有所帮助。服务查找现在起作用了。
我不知道为什么这会对JNDI产生影响。JDBC查找在这两种情况下都有效。
有人能对此发表评论吗?
我已经为使用外部Tomcat的Spring Boot应用程序的JNDI数据源连接进行了bellow提到的配置。 context.xml类似 为spring boot定义了Application.Properties 更新了web.xml,如
如果有人能帮助我纠正代码中的问题,我将不胜感激。不知道我哪里错了。 当前我的persistence.xml包含
我正在使用Quartz 2.1。5作为Java EE 7环境(Wildfly)中的集群式调度器。启动Quartz作业后,该作业需要访问JavaEE会话bean。我的软件有点旧(没有可用的依赖注入),所以作业使用jndi查找来获取会话bean。作为jndi查找,我使用可移植jndi语法。 java:app[/module name]/enterprisebean name[/interface na
在查找jdbc数据源的JNDI连接时,我遇到以下错误: javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE应用程序不会在静态代码块或该J2EE应用程序创建的线程中对“
在使用资源引用从服务器上下文获取数据源连接时,我收到了JNDI查找错误。请注意,如果我不使用,则“查找”是有效的。 javax。命名。ConfigurationException:无法完成“java:”名称上的JNDI操作,因为服务器运行时无法将该操作的线程与任何J2EE应用程序组件关联。当使用“java:”名称的JNDI客户端未在服务器应用程序请求的线程上执行时,可能会出现这种情况。确保J2EE
我目前正在从事一个Java桌面应用程序项目。这是一个现有的应用程序,我被要求修改它。 他们说我必须使用RESTful Web服务将数据从桌面应用程序发送到Web应用程序。所以我搜索了一些关于RESTful Web服务的信息(因为我对那类东西不熟悉,对Java也不熟悉),我看到一些使用RESTful Web服务的非Web应用程序,但非Web应用程序是Maven项目。我需要修改的现有java桌面应用程