在下面遇到此错误消息:
try (BufferedReader in = new BufferedReader(new InputStreamReader (
new FileInputStream(inFile), Charset.forName("Shift_JIS")))) {
try (BufferedWriter out = new BufferedWriter(new OutputStreamWriter (
new FileOutputStream(outFile), StandardCharsets.UTF_8))) {
IOUtils.copy(in, out);
}
}
以下是我的确切代码,致电
时遇到问题org.apache.commons.httpclient.URIException: Invalid query
at org.apache.commons.httpclient.URI.parseUriReference(URI.java:2049)
at org.apache.commons.httpclient.URI.<init>(URI.java:147)
这是我的EP供参考
<?xml version="1.0" encoding="UTF-8"?>
<api context="/test_api" name="rest" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET" uri-template="/hello?name={namVal}">
<inSequence>
<property name="SYSTEM" expression="$url:name"/>
<property name="uri.var.name" expression="$ctx:SYSTEM"/>
<call blocking="true">
<endpoint key="hello_EP"/>
</call>
<payloadFactory media-type="xml">
.....
</payloadFactory>
<respond />
</inSequence>
<outSequence />
<faultSequence />
</resource>
</api>
答案 0 :(得分:0)
端点中的查询参数为{uri.var.fname}
,但属性名称为uri.var.name
。因此,将属性名称更改为uri.var.fname
。
这可以直接由单个属性完成,而不必具有以下两个属性,
<property name="uri.var.fname" expression="$url:name"/>
答案 1 :(得分:0)
我发布的问题已于昨天修复。要解决此问题,我需要将uri-template更改为url-mapping。
现在这是我的更新代码:
端点:
<?xml version="1.0" encoding="UTF-8"?>
<endpoint name="hello_EP" xmlns="http://ws.apache.org/ns/synapse">
<address uri="http://xxxxxxxxxxxxxxxxxx:12345/SpringRest/"/>
</endpoint>
API代码。
<?xml version="1.0" encoding="UTF-8"?>
<api context="/temp_api" name="springRest" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET" url-mapping="/hello">
<inSequence>
<!-- URL Parameters -->
<property expression="$url:name" name="SYSTEM" scope="default" type="STRING"/>
<!-- Logs -->
<log level="custom">
<property expression="$ctx:SYSTEM" name="value-system"/>
</log>
<!-- URL param value passed to endpoint param -->
<property expression="$ctx:SYSTEM" name="uri.var.fname" scope="default" type="STRING"/>
<!-- Call endpoint -->
<call blocking="true">
<endpoint key="hello_EP"/>
</call>
<payloadFactory media-type="xml">
..
..
</payloadFactory>
<respond/>
</inSequence>
<outSequence/>
<faultSequence/>
</resource>
</api>
输出:
<body xmlns="http://ws.apache.org/ns/synapse">
{
"id": 1,
"content": "Hello, world!"
}
</body>