【发布时间】:2019-02-20 22:37:44
【问题描述】:
url 在..test/java/resources/application-local.properties 和..main/java/resources/application-local.properties 中设置了类似http:xxx.com 的内容
一个名为applicationcontext-ws.xml 的文件使用了${url}:
<jaxws:client id="xxx"
serviceClass="RemoteService"
address="${url}">
<jaxws:outInterceptors>
<ref bean="headerInterceptor"/>
</jaxws:outInterceptors>
</jaxws:client>
运行测试时出现异常:
原因:java.net.URISyntaxException:路径中的非法字符 索引 1: ${url} at java.net.URI$Parser.fail(URI.java:2848) at java.net.URI$Parser.checkChars(URI.java:3021) 在 java.net.URI$Parser.parseHierarchical(URI.java:3105) 在 java.net.URI$Parser.parse(URI.java:3063) 在 java.net.URI.(URI.java:588) 在 org.apache.cxf.transport.http.HTTPConduit.setupURI(HTTPConduit.java:664) 在 org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:458)
但是,正常运行时,即不运行测试,则永远不会出现此问题。
起初我怀疑是因为..test/resources/application-local.properties 没有加载。我在测试类中用@Value(${url}) 注释了一个字段url,在调试模式下我可以看到该字段的值正是..test/resources/application-local.properties 中的url 内容,所以这不是原因。
您能否提供一些建议来帮助我找出原因以及如何在运行测试时解决url?谢谢。
【问题讨论】:
-
您应该提供有关您的测试设置和测试本身的更多详细信息。
标签: java spring spring-boot