Spring 部署设置 OpenShift

3

我有一个问题让我苦恼了三天。

根据OpenShift账户上的教程,我部署了spring-eap6-quickstart代码。我配置了调试选项,并将eclipse工作区与OpenShift服务器同步 - 服务器上的所有内容都正常工作,但是在Eclipse中,我遇到了一个无法消除的错误。

我遇到了以下错误:

cvc-complex-type.2.4.a: Invalid content was found starting with element 'deployment'. One of '{ear-subdeployments-isolated, deployment, sub-deployment, module}' is expected.   jboss-deployment-structure.xml  /spring-eap6-quickstart/src/main/webapp/WEB-INF line 2

这表示部署标签上出现了错误。

我的 jboss-deployment structure xml 如下:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
   <deployment>
       <dependencies>
            <module name="com.h2database.h2"/>
            <module name="org.codehaus.jackson.jackson-core-asl"/>
            <module name="org.codehaus.jackson.jackson-mapper-asl"/>
            <module name="org.slf4j"/>
       </dependencies>
   </deployment>
</jboss-deployment-structure>

当我将部署结构更改为:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:2.0">

这个在eclipse上的改变修正了错误,但是应用程序在OpenShift服务器上无法运行。
我意识到问题出在设置上,但我不知道如何解决它。有人知道我该怎么做吗?请帮帮我,谢谢!
2个回答

2
使用 urn:jboss:deployment-structure:1.0,您的xml是绝对有效的。不幸的是,jbossas deployment-structure方案存在错误,因此Eclipse会报错:https://issues.jboss.org/browse/JBIDE-15311 将引用方案的版本提升到2.0,可以通过引用不存在的方案来解决Eclipse中的问题。但是OpenShift则会失败。当前有 1.0、1.1 和 1.2三种版本,即将发布的2.0版应该会修复该方案,并使Eclipse正确验证。但不幸的是,我们还未实现该目标。我建议您关闭验证或只关闭方案验证:Window->Preferences->Validation: validation preferences

1

更新您的XML以定义名称空间,例如:

<?xml version="1.0" encoding="UTF-8"?>
<jds:jboss-deployment-structure xmlns:jds="urn:jboss:deployment-structure:1.0">
  <deployment>
    <dependencies>
      <module name="org.dom4j" />
    </dependencies>
  </deployment>
</jds:jboss-deployment-structure>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接