java – Wildfly 8 Unexpected element'{urn:jboss:domain:web:1.1} subsystem’

当我启动Keycloak服务时,我收到以下错误:

0:09:08,028 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.3.Final
00:09:08,268 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.2.Final
00:09:08,348 INFO  [org.jboss.as] (MSC service thread 1-6) JBAS015899: WildFly 8.1.0.Final "Kenny" starting
00:09:08,985 ERROR [org.jboss.as.server] (Controller Boot Thread) JBAS015956: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: JBAS014676: Failed to parse configuration
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:112) [wildfly-controller-8.1.0.Final.jar:8.1.0.Final]
    at org.jboss.as.server.ServerService.boot(ServerService.java:331) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
    at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:256) [wildfly-controller-8.1.0.Final.jar:8.1.0.Final]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_65]
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[94,9]
Message: Unexpected element '{urn:jboss:domain:web:1.1}subsystem'
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:108) [staxmapper-1.1.0.Final.jar:1.1.0.Final]
    at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final]
    at org.jboss.as.server.parsing.StandaloneXml.parseServerProfile(StandaloneXml.java:1131) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
    at org.jboss.as.server.parsing.StandaloneXml.readServerElement_1_4(StandaloneXml.java:458) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
    at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:145) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
    at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:107) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final]
    at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final]
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:104) [wildfly-controller-8.1.0.Final.jar:8.1.0.Final]
    ... 3 more

00:09:08,989 FATAL [org.jboss.as.server] (Controller Boot Thread) JBAS015957: Server boot has failed in an unrecoverable manner; exiting. See previous messages for details.
00:09:09,004 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015950: WildFly 8.1.0.Final "Kenny" stopped in 4ms

在standalone.xml中,我有以下设置:

 <profile>
        <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
            <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"  redirect-port="443" />
            <connector name="https" scheme="https" protocol="HTTP/1.1" socket-binding="https"
                       enable-lookups="false" secure="true">
                <ssl name="localhost-ssl" password="secret" protocol="TLSv1"
                     key-alias="localhost" certificate-key-file="${jboss.server.config.dir}/keycloak.jks" />
            </connector>
        </subsystem>

我按照this链接上的说明进行操作,但似乎没有上述错误.

这里有什么东西需要做吗?

更新

我已经改为建议但现在得到以下错误:

02:20:43,434 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("add") failed - address: ([("subsystem" => "webservices")]) - failure description: {"JBAS014879: One or more services were unable to start due to one or more indirect dependencies not being available." => {
    "Services that were unable to start:" => ["jboss.ws.config"],
    "Services that may be the cause:" => [
        "jboss.deployment.unit.\"oauth-client-cdi.war\".beanmanager",
        "jboss.server.controller.management.security_realm.UndertowRealm"
    ]
}}

解决方法:

XML命名空间urn:jboss:domain:web:1.1适用于AS7. WildFly for web子系统中的正确命名空间是urn:jboss:domain:undertow:1.0:

<security-realms>
    ...
    <security-realm name="SecureRealm">
        <server-identities>
            <ssl>
                <keystore path="localhost.keystore" relative-to="jboss.server.config.dir" keystore-password="wildfly"/>
            </ssl>
        </server-identities>
    </security-realm>
</security-realms>
...
<subsystem xmlns="urn:jboss:domain:undertow:1.0">
    ...
    <server name="default-server">
        <http-listener name="default" socket-binding="http"/>
        <https-listener name="https" socket-binding="https" security-realm="SecureRealm"/>
        <host name="default-host" alias="localhost">
            <location name="/" handler="welcome-content"/>
            <filter-ref name="server-header"/>
            <filter-ref name="x-powered-by-header"/>
        </host>
    </server>
    ...
</subsystem>

你可以在http://reallifejava.com/configuring-ssl-in-wildfly-8/找到一个完整的例子

上一篇:java – 如何为JBoss实例设置代理


下一篇:java – 与应用程序隔离的WildFly9 JASPI模块