运行测试

时间:2018-09-17 03:25:30

标签: java spring spring-boot

urlhttp:xxx.com中设置了..test/java/resources/application-local.properties..main/java/resources/application-local.properties

使用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:位于java.net.URI $ Parser.fail(URI.java:2848)处的$ {url}   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。我在测试类中用url注释了@Value(${url})字段,在调试模式下,我可以看到该字段的值正是..test/resources/application-local.properties中url的内容,所以这不是原因。

请提供一些建议以帮助我找出原因,以及在进行测试时如何解决url吗?谢谢。

1 个答案:

答案 0 :(得分:0)

我相信'$ {url}'本身将作为url,而'{'被视为非法字符。请调试并检查在运行时传递/创建的URL是什么。我相信$ {url}在运行时无法正确替换。