我正在尝试从Liferay
到部署在EJB
中的Weblogic Server 12.2.1.3.0
进行远程呼叫。
我正在使用wlthint3client.jar
,Java jdk1.8.0_172
和Liferay DXP
,
但是会引发下一个异常:
18:11:31,101 ERROR [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'][DispatcherPortlet:573] Could not complete request
javax.portlet.PortletException: Error occured during request processing: Could not initialize class weblogic.utils.LocatorUtilities$Locator
at org.springframework.web.portlet.DispatcherPortlet.doActionService(DispatcherPortlet.java:692)
at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:533)
at org.springframework.web.portlet.FrameworkPortlet.processAction(FrameworkPortlet.java:473)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:71)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.liferay.portal.osgi.web.wab.extender.internal.adapter.ServletExceptionAdapter.service(ServletExceptionAdapter.java:76)
at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:50)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:191)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:191)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:99)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class weblogic.utils.LocatorUtilities$Locator
at weblogic.utils.LocatorUtilities.getService(LocatorUtilities.java:37)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:124)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.init(InitialContext.java:244)
at javax.naming.InitialContext.<init>(InitialContext.java:216)
at mx.com.procesar.esar.portal.imprimecurp.controller.impl.ImprimeCurpControllerImpl.executeImprimeCurpResponse(ImprimeCurpControllerImpl.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
我认为我需要一些依赖,但是我可以弄清楚它们是什么,您对这里发生的事情有任何想法吗?
非常感谢您阅读
答案 0 :(得分:0)
我遇到了同样的问题,这是由我的类路径中添加了hk2-locator-2.2.0.jar引起的。 您可以通过确保在hk2-locator之前加载wlthint3client依赖项来解决此问题。
顺便说一下,我不确定您为什么将wlthint3client.jar添加到WAR文件中,因为它已部署在WLS上。 Thinclient旨在在Weblogic容器外部运行,就像Oracle文档描述的那样:
The Thin T3 client can be used in standalone applications, and is also designed for applications running on foreign (non-WebLogic) servers. One common use case is integration with WebLogic JMS destinations.