weblogic.descriptor.DescriptorException:Unmarshaller失败了

时间:2013-11-06 21:17:53

标签: java java-ee weblogic-10.x

当我在Weblogic 10.3.6中部署我的WAR时,它运行但在weblogic 10.3.0中它会抛出这个:

  

无法加载描述符   d:\ bea103 \ user_projects \域\ SRVWinplex \部署\ WinplexAdmin.war / WEB-INF / weblogic.xml中   模块WinplexAdmin.war。错误是   weblogic.descriptor.DescriptorException:Unmarshaller失败了   weblogic.descriptor.internal.MarshallerFactory $ 1.createDescriptor(MarshallerFactory.java:152)   在   weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:306)   在   weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)   在   weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:409)   在   weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:759)   在   weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:768)   在   weblogic.servlet.internal.WebAppDescriptor.getWeblogicWebAppBean(WebAppDescriptor.java:170)

我猜这是weblogic.xml的问题。这是我的weblogic.xml(没有基本标签):

<jsp-descriptor>
    <keepgenerated>true</keepgenerated>
    <debug>true</debug>
</jsp-descriptor>
<context-root>/WinplexAdmin</context-root>
<library-ref>
    <library-name>jsf</library-name>
    <specification-version>2.0</specification-version>
    <implementation-version>1.0.0.0_2-0-2</implementation-version>
</library-ref>
<container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>

这里有什么问题?

4 个答案:

答案 0 :(得分:3)

解决。我正在使用更新的weblogic.jar进行编译 我的意思是:我将Weblogic 10.3.6附加到NetBeans,因此它是一个不同的weblogic.xml。

Weblogic 10.3.0的正确weblogic.xml是这样的:

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">

您可以在xml中看到“http://www.bea.com/”,而Weblogic 11g等的weblogic.xml中则包含“java”或“sun”的链接。

我刚下载了Weblogic 10.3.0,将其附加到NetBeans,将项目的服务器从Weblogic 10.3.6更改为10.3.0,然后重新编译。

或者......简单的方法就是替换我在这里粘贴的weblogic.xml代码并编译。

我希望它能解决你的问题。

答案 1 :(得分:0)

如果使用Sun XML Parser而不是默认的Weblogic XML解析器,则会发生以下情况:

问题是,如果在此元素中,Sun解析器无法解析应用程序的web.xml:

<web-app version="2.5" metadata-complete="true" 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_2_5.xsd">

xmlns属性位于xmlns:xsi属性之后。

xmlns属性必须在xmlns:xsi属性之前!

花了很长时间才找到它。

答案 2 :(得分:0)

如果以上代码不适合您,那么您可以使用以下代码

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

答案 3 :(得分:0)

如果您尝试过以下解决方案但仍无法正常工作,可能是由于JavaVersion中的版本不匹配,请尝试

  1. 点击Windows
  2. 点击偏好设置。
  3. 点击Java-&gt;编译器。检查它是否与您在应用程序中使用的版本匹配。如果不匹配则更改编译器合规性级别