我尝试在现有的独立spring应用程序中实现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:jaxws="http://cxf.apache.org/jaxws"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:beans/webservice.xml" />
...
webservice.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:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<bean id="CheckService" class="test.ws.CheckService">
</bean>
<jaxws:endpoint
id="checkService"
implementor="#CheckService"
address="http://localhost:9000/CheckService" />
我根据官方文档和书籍样本进行了配置。我得到例外:
03/11/2010 09:34:12 WARN Ignored XML validation warning
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://cxf.apache.org/schemas/jaxws.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.warning(Unknown Source)
...
可以从浏览器访问http://cxf.apache.org/schemas/jaxws.xsd,我认为它已经很好地形成了(官方的xsd)。
我怀疑这个问题与cxf而不是与swing配置有关。
谢谢,
Hubidubi
答案 0 :(得分:0)
这意味着在运行它时无法访问该URL。当我们在没有互联网连接的情况下启动struts / tiles应用程序时,会发生这种情况。您可以选择下载xsd并将其放在应用程序可以读取的位置。
并将http://cxf.apache.org/schemas/jaxws.xsd替换为/path/to/file/jaxws.xsd
答案 1 :(得分:0)
您是否处于需要设置代理才能访问网络的环境中? 您已在浏览器中设置代理,因此可以通过浏览器访问.xsd。
您需要适当地设置IDE或设置系统范围的代理。
希望我猜对了:p
答案 2 :(得分:0)
最后我想出了决议。我不得不向maven pom.xml添加适当的依赖项。
答案 3 :(得分:0)
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.2</version>
</dependency>
对我而言是这样的。
答案 4 :(得分:0)
清除Eclipse缓存中的文件为我解决了这个问题。
在Eclipse首选项中,我转到常规&gt;网络连接&gt;缓存并删除导致问题的cxf文件。下次验证文件时,错误消失了。