java WebLogic 12c迁移问题与解组JAXB
我们目前有一个应用程序在WebLogic 10.3.5.0上运行,我们正在迁移到WL12.1.2.0.0。我们遇到将WS调用取消编组到另一个应用程序的问题。我们熟悉升级时的编组错误,但是这个问题似乎不一样
值得注意的是,它在相同WL版本的开发/测试服务器上工作正常,但在本地部署时将返回以下错误(必须是环境/配置设置不匹配?):
JAXB unmarshalling exception: null; nested exception is javax.xml.bind.UnmarshalException - with linked exception: [org.xml.sax.SAXParseException; cvc-complex-type.3.2.2: Attribute 'xsi:nil' is not allowed to appear in element 'error'.]
从错误消息来看,它似乎无法识别xsi名称空间或其他内容。模式没有从10.3.5更改,不应该是问题的根源。有人有什么想法,甚至是一个出发点吗
非常感谢
编辑:添加网页。xml和weblogic。xml
网络。xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="cpc-mi" version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
...
</web-app>
weblogic。xml
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd"
xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</weblogic-web-app>
# 1 楼答案
我对此知之甚少,甚至不确定这是否完全正确,但放xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“在XML实例中,如何使其工作
# 2 楼答案
我们有一个类似的问题:soap消息的解析在10.3中工作。x、 但12年后失败了。x、 这个问题原来是一个过时的xercesImpl。罐子我怀疑这是怎么回事,但我想我会分享经验以防万一
请注意,过时的xercesImpl。jar包含在作为库部署的一个war文件中,而不是Oracle作为WebLogic 12的一部分提供的任何东西
# 3 楼答案
WebLogic12c(WLS12c)有自己的jar库,包括和jaxb。我已经在使用这个服务器,当我想使用JSF(WebLogic附带的另一个库)时,我必须告诉WLS 12c,它忽略自己的JSF库,而使用war/ear中包含的我的JSF库
您可以在
WEB-INF
文件夹中使用weblogic.xml
描述符来实现这一点。这是你和我的一个weblogic.xml
当然,您可以将自己的jaxb依赖项包含到war/ear中,并告诉WLS 12c忽略其jaxb库,对
package-name
标记使用java.xml.bind.*
值,也可以对resource-name
标记使用java.xml.bind.*
值希望能有帮助