启动时出现异常:cvc-complex-type.2.4.c:匹配通配符严格,但找不到元素'wss:绑定'的声明

问题描述 投票:0回答:1

我正在 Eclipse 中启动 JBoss 服务器,在启动过程中出现以下错误:

JBWEB000287: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener: org.springframework.beans.factory.BeanDefinitionStoreException: Line 12 in XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 28; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'wss:binding'.

这是applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ws="http://jax-ws.java.net/spring/core"
    xmlns:wss="http://jax-ws.java.net/spring/servlet"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://jax-ws.java.net/spring/core
    http://jax-ws.java.net/spring/core.xsd
    http://jax-ws.java.net/spring/servlet
    http://jax-ws.java.net/spring/servlet.xsd">

    <wss:binding url="/atsws">
        <wss:service>
            <ws:service bean="#atsWs" />
        </wss:service>
    </wss:binding>

    <!-- Web service methods -->
    <bean id="atsWs" class="com.ats.ws.HelloWorldWS">
        <property name="helloWorldBo" ref="HelloWorldBo" />
    </bean>

    <bean id="HelloWorldBo" class="com.ats.ws.HelloWorldBoImpl" />
</beans>

如何解决此错误?

spring binding applicationcontext
1个回答
0
投票

我设法解决了这个问题。它是 Maven 依赖项更改和针对 jaxws-spring 版本使用正确模式的组合。不幸的是,由于版本冲突,我无法让当前版本的 jaxws-spring 和 xbean-spring 在我的项目中工作。

该解决方案在 Glassfish 3.1.2.2 服务器上运行。这是我解决问题的方法:

POM 文件依赖:

<dependency>
        <groupId>org.jvnet.jax-ws-commons.spring</groupId>
        <artifactId>jaxws-spring</artifactId>
        <version>1.8</version>
        <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
        </exclusion>
        <exclusion> 
            <groupId>com.sun.xml.ws</groupId> 
            <artifactId>jaxws-rt</artifactId> 
        </exclusion> 
        <exclusion> 
            <groupId>javax.jws</groupId> 
            <artifactId>jsr181-api</artifactId> 
        </exclusion> 
        <exclusion> 
            <groupId>com.sun.xml.bind</groupId> 
            <artifactId>jaxb-impl</artifactId> 
        </exclusion> 
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.apache.xbean</groupId>
        <artifactId>xbean-spring</artifactId>
        <version>2.7</version>
        <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
        </exclusion>
        </exclusions>
    </dependency>

Web 服务配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"
       xmlns:ws="http://jax-ws.dev.java.net/spring/core"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://jax-ws.dev.java.net/spring/servlet http://jax-ws.dev.java.net/spring/servlet.xsd
       http://jax-ws.dev.java.net/spring/core http://jax-ws.dev.java.net/spring/core.xsd">         
    <wss:binding url="/ws">
        <wss:service>
            <ws:service bean="#webService"/>
        </wss:service>
    </wss:binding>
    <bean id="webService" class="project.LegislativeCalendar">
        <property name="calendaringService" ref="calendaringService"/>
    </bean>
</beans>

希望这有帮助。迟到总比不做好,对吧?

© www.soinside.com 2019 - 2024. All rights reserved.