- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我遇到了我的应用程序的 jar 和 weblogic 容器的 jar 之间的 jar 冲突问题,我正在寻求您的帮助。情况是这样的。
我试图从另一个 Web 服务内部调用一个 Web 服务,并且这两个 Web 服务都托管在我的本地 Weblogic 服务器上。 Maven已被用作生成工具,生成war文件并将它们部署在weblogic上。当从 Web 服务调用另一个 Web 服务时,我收到此错误
javax.xml.ws.spi.Provider:提供程序 weblogic.wsee.jaxws.spi.WLSProvider 不是子类型
org.apache.cxf.interceptor.Fault: javax.xml.ws.spi.Provider: Provider weblogic.wsee.jaxws.spi.WLSProvider not a subtype
at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155) ~[cxf-rt-core-2.5.4.jar:2.5.4]
at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:86) ~[cxf-rt-frontend-jaxws-2.5.4.jar:2.5.4]
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121) ~[cxf-rt-core-2.5.4.jar:2.5.4]
at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:64) ~[cxf-rt-frontend-jaxws-2.5.4.jar:2.5.4]
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) ~[cxf-rt-core-2.5.4.jar:2.5.4]
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) ~[cxf-rt-core-2.5.4.jar:2.5.4]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_75]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_75]
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) ~[cxf-rt-core-2.5.4.jar:2.5.4]
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:107) ~[cxf-rt-core-2.5.4.jar:2.5.4]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) ~[cxf-api-2.5.4.jar:2.5.4]
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123) [cxf-rt-core-2.5.4.jar:2.5.4]
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:207) [cxf-rt-transports-http-2.5.4.jar:2.5.4]
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) [cxf-rt-transports-http-2.5.4.jar:2.5.4]
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193) [cxf-rt-transports-http-2.5.4.jar:2.5.4]
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:128) [cxf-rt-transports-http-2.5.4.jar:2.5.4]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:185) [cxf-rt-transports-http-2.5.4.jar:2.5.4]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:108) [cxf-rt-transports-http-2.5.4.jar:2.5.4]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:751) [weblogic.server.merged.jar:12.1.3.0.0]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:164) [cxf-rt-transports-http-2.5.4.jar:2.5.4]
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:243) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3432) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) [com.oracle.css.weblogic.security.wls_7.1.0.0.jar:CSS 7.1 0.0]
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) [weblogic.server.merged.jar:12.1.3.0.0]
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) [weblogic.server.merged.jar:12.1.3.0.0]
**Caused by: java.util.ServiceConfigurationError: javax.xml.ws.spi.Provider: Provider weblogic.wsee.jaxws.spi.WLSProvider not a subtype**
at java.util.ServiceLoader.fail(ServiceLoader.java:231) ~[na:1.7.0_75]
at java.util.ServiceLoader.access$300(ServiceLoader.java:181) ~[na:1.7.0_75]
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:369) ~[na:1.7.0_75]
at java.util.ServiceLoader$1.next(ServiceLoader.java:445) ~[na:1.7.0_75]
at javax.xml.ws.spi.Provider.getProviderUsingServiceLoader(Provider.java:180) ~[jaxws-api-2.2.11.jar:na]
at javax.xml.ws.spi.Provider.provider(Provider.java:140) ~[jaxws-api-2.2.11.jar:na]
at javax.xml.ws.Service.<init>(Service.java:92) ~[jaxws-api-2.2.11.jar:na]
at javax.xml.ws.Service.create(Service.java:722) ~[jaxws-api-2.2.11.jar:na]
at com.zafinlabs.mirev.jewel.cibc.gen.fx.webservice.impl.ERDSFXManagementServiceImpl.callExternalWebService(ERDSFXManagementServiceImpl.java:249) ~[_wl_cls_gen.jar:na]
at com.zafinlabs.mirev.jewel.cibc.gen.fx.webservice.impl.ERDSFXManagementServiceImpl.fillUpdateFXBulletinRatesResponse(ERDSFXManagementServiceImpl.java:214) ~[_wl_cls_gen.jar:na]
at com.zafinlabs.mirev.jewel.cibc.gen.fx.webservice.impl.ERDSFXManagementServiceImpl.updateFXBulletinRates(ERDSFXManagementServiceImpl.java:122) ~[_wl_cls_gen.jar:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_75]
如果我通过一个简单的 java 程序(使用 main 方法)调用此 Web 服务,则不会收到此错误。仅当我尝试通过部署在 weblogic 上的代码进行调用时,才会出现这种情况。我对此进行了一些研究,发现这是因为 jar 冲突。在我的 pom.xml 中,以下依赖项导致了此错误 -
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
</dependency>
经过进一步研究,我了解到我们可以指定首选 jar 文件以在发生 jar 冲突时拾取容器。这是通过设置 prefer-web-inf-classes = true
来完成的,如下所示在应用程序的 weblogic.xml-
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app>
<context-root>/app1</context-root>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
现在,如果我将上述属性设置为 false,那么它就可以工作,即使在保留上述所有依赖项之后,我也看不到任何错误。
但是如果我将此属性设置为 true 并且我不删除上述依赖项,则会出现错误。但是,将此属性设置为 true 后,如果我删除上述依赖项,则它可以正常工作而不会出现任何错误。
所以现在我有两种方法可以让它工作。
一,将 Preferred-web-inf-classes 属性设置为 false,而不进行任何其他更改。这会导致其他问题,例如日志记录不起作用,并且可能还有其他一些问题。其次,将prefer-web-inf-classes属性设置为true并删除上述依赖项。
不幸的是,这两种解决方案都没有被管理层接受。我想要一个解决方案,其中 Preferred-web-inf-classes 属性为 true 并且不删除任何依赖项。也许有一种方法可以强制 weblogic 在我的应用程序的类路径中选择 jar,而不是从容器的环境中选择。
经过进一步研究,我了解到,我们可以通过进行如下所示的更改来指定容器从应用程序中选取的首选包:META-INF/weblogic-application.xml(使用完整依赖项进行测试,并且prefer-web-inf-classes = true) -
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-application>
<application-param>
<param-name>webapp.encoding.default</param-name>
<param-value>UTF-8</param-value>
</application-param>
<prefer-application-packages>
<package-name>javax.jws.*</package-name>
<package-name>javax.xml.ws.*</package-name>
<package-name>javax.xml.bind.*</package-name>
<package-name>javax.xml.soap.*</package-name>
<package-name>com.sun.xml.*</package-name>
</prefer-application-packages>
</weblogic-application>
这也不起作用。
我还尝试将 javax.xml.ws.spi.Provider 文件放入 META-INF/services 中,其值为 com.sun.xml.ws.spi.ProviderImpl 但这也不起作用(使用完整依赖项进行测试,并且 Preferred-web-inf-classes = true)
经过这么多方法之后,我脑子里没有任何其他方法,现在我一无所知。
以下是我的 pom.xml -
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>sample.webservice</artifactId>
<packaging>war</packaging>
<name>CounterWebApp_1.0</name>
<version>CounterWebApp_1.0</version>
<groupId>com.sample</groupId>
<build>
<plugins>
<plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId>
<version>2.3.11</version> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase>
<configuration> <sourceRoot>${project.build.directory}/gen/cxf</sourceRoot> <wsdlOptions>
<wsdlOption> <wsdl>${basedir}/src/main/resources/wbfxrProvider.wsdl</wsdl> </wsdlOption>
</wsdlOptions> </configuration> <goals> <goal>wsdl2java</goal> </goals> </execution>
</executions> </plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>CounterWeb</warName>
<warSourceExcludes>
WEB-INF/lib/*.jar
</warSourceExcludes>
<archive>
<manifestEntries>
<DisableIBMJAXWSEngine>true</DisableIBMJAXWSEngine>
</manifestEntries>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.5.v20120716</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
<!-- Dependency definitions -->
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1-b01</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<!-- Spring Dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.3.RELEASE</version>
</dependency>
<!-- Apache CXF dependencies -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-rt</artifactId>
<version>2.2.8</version>
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
<version>2.2.8</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>com.sun.xml.messaging.saaj</groupId>
<artifactId>saaj-impl</artifactId>
<version>1.3.23</version>
</dependency>
<dependency>
<groupId>org.jvnet.staxex</groupId>
<artifactId>stax-ex</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
</project>
我正在使用cxf 库的 api 从我想要调用的 Web 服务的 wsdl 生成 java stub 。
我的系统安装的jdk是1.7,weblogic是12.1.3
请建议我还能做什么,或者我是否在之前的方法中遗漏了某些内容。如果您需要任何进一步的信息,请告诉我。
期待回复
最佳答案
@user3264917 我没有这个问题的答案,但我想分享我的经验。早些时候,我在将 weblogic 从 12.1.2 升级到 12.1.3 的过程中遇到了很大的困难。
我曾经遇到过类似的 hibernate-validator.jar 冲突 jar 错误。这个错误实际上误导了我的调查。真正的原因是别的东西。新的 weblogic 12.1.3 开始提供对 slf4j-logback 的内置支持。我的旧代码已经有 slf4j-logback jar。当我开始使用新的weblogic支持的那些时,我的问题就解决了。
在这里,我向您推荐一些东西。
关于jar - 如何解决weblogic的jar包与应用程序的jar包冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648769/
我正在尝试在 weblogic (10.3.2.0) 中创建和加载动态类。这是我部署到 weblogic 服务器的 ADF 应用程序。 当我打印时 ((GenericClassLoader)this.
我正在尝试使用 weblogic 部署计划将 init-param 值添加到供应商提供的 .war 文件的 web.xml。 虽然我意识到我可以打开 .war 文件并只在其中编辑文件,但我更喜欢使用部
当我尝试从本地计算机启动 weblogic 服务器(在另一台服务器上运行)时,出现以下错误。我可以毫无问题地停止这个 weblogic 服务器,但我无法启动。 boot.properties 文件中有
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
如果我想在网页中显示图像,并且其 src 是上下文根之外的文件。在 IDE 中,图像显示为已加载。 但是当我测试网页时,没有任何显示。如何配置 weblogic 服务器以允许显示图像。如果没有,无论如
我知道我们用于 WebLogic 的 4 个配置文件: web.xml weblogic.xml weblogic-application.xml 应用程序.xml 使用这些文件的目的是什么? 最佳答
我需要一个自定义属性来为 Weblogic 中的每个服务器 JVM 设置。什么是更好的方法呢? 我知道我们可以指定如下参数: 在域结构 Pane 中,展开服务器节点。 单击要配置的服务器的名称。 在右
我需要使用哪些 URL、端口和 weblogic 服务器端设置? 最佳答案 这取决于您是否要连接到 WebLogic MBean 服务器(域、运行时、编辑)或平台 (JDK) MBean 服务器(请参
当我使用已部署的应用程序启动 Weblogic 实例时,部署有时处于准备状态,而不是事件状态。我必须转到 Weblogic 控制台并手动启动部署,这是相当缓慢且烦人的重复工作。由于这是在开发计算机上完
我想在我的 Web 应用程序中访问在 Weblogic 的自定义 keystore 配置中配置的身份 keystore (JKS)。如何让 weblogic 在不依赖以下环境属性的情况下公开此内容:-
我在我的 mac 机器上运行 Weblogic 10.3 的托管实例。有一天,我尝试启动它,但收到此错误消息 * **
我需要为 Weblogic 中的每个服务器 JVM 设置一个自定义属性。更好的方法是什么? 我知道我们可以指定如下参数: 在“域结构” Pane 中,展开“服务器”节点。 单击要配置的服务器的名称。
当我运行 WLST 脚本 .sh 脚本来设置环境时,为什么在回显时看不到更新的路径? [linbox2 bin]$ ./setWLSEnv.sh CLASSPATH=/directory/ols_wl
我有一个 WebLogic 集群,在该集群上部署了许多主题和使用它们的应用程序。我的应用程序统一显示为警告状态。查看部署中的监控,我看到 MDB 应用程序连接到服务器 #1,但在服务器 #2 上显示如
我想切换到 CentOS 来运行当前部署在 RHEL 下的 WebLogic 11g。人们在 CentOS 上运行 WebLogic 11g 时是否遇到过任何我应该注意的问题? 最佳答案 大约三年前,
我一直在尝试将我们的 Activiti 实现重构为使用 CDI,但遇到了许多问题。我已经花了太多时间试图解决这个问题,但我就是不能放手......我想我现在已经解决了这个问题,在不涉及 Activit
我正在编写代码以在 weblogc 上启动、停止、取消部署和部署我的应用程序。 我的组件需要部署在少数托管服务器上。 当我手动进行新部署时,我可以通过勾选多个框并从下拉菜单中选择启动和停止来并行启动和
我无法从 jdevloper 创建 weblogic 域! 我正在使用 Jdevloper 12.1.2(12c),当我尝试在默认集成 weblogic 服务器 上创建域时,会出现这样的错误 - wl
使用 Weblogic 11g 并希望能够向 weblogic 提供的所有文件添加 header 。 weblogic 前面没有单独的 Web 服务器。找不到配置 weblogic 向 HTTP 响应
我正在尝试将 Jprofiler7 连接到远程 weblogic10.3 托管服务器。我能够在 JProfiler 中连接并查看管理控制台线程和内存使用情况,但不能查看部署在托管服务器上的应用程序。
我是一名优秀的程序员,十分优秀!