Rdebu opened a new issue #54:
URL: https://github.com/apache/apisix-java-plugin-runner/issues/54
### Issue description
写的测试插件不起作用
### Environment
centos7 + apisix2.7 + apisix-java-plugin-runner version0.1
* your apisix-java-plugin-runner version 0.1
按照官网写了个Java插件测试
文件名是TestFilter.java,也根据步骤放到了 package-info.java 同级文件夹下

内容是:
/*
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package org.apache.apisix.plugin.runner.filter;
import com.google.gson.Gson;
import org.apache.apisix.plugin.runner.HttpRequest;
import org.apache.apisix.plugin.runner.HttpResponse;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Mono;
import java.util.HashMap;
import java.util.Map;
@component
public class TestFilter implements PluginFilter {
@Override
public String name() {
/* It is recommended to keep the name of the filter the same as the
class name.
Configure the filter to be executed on apisix's routes in the following
format
{
"uri": "/hello",
"plugins": {
"ext-plugin-pre-req": {
"conf": [{
"name": "TestFilter",
"value": "bar"
}]
}
},
"upstream": {
"nodes": {
"127.0.0.1:1980": 1
},
"type": "roundrobin"
}
}
The value of name in the configuration corresponds to the value of
return here.
*/
return "TestFilter";
}
@Override
public Mono<Void> filter(HttpRequest request, HttpResponse response,
PluginFilterChain chain) {
/*
* If the conf you configured is of type json, you can convert it to Map
or json.
*/
String configStr = request.getConfig(this);
Gson gson = new Gson();
Map<String, Object> conf = new HashMap<>();
conf = gson.fromJson(configStr, conf.getClass());
/*
* You can use the parameters in the configuration.
*/
// note: the path to the rewrite must start with '/'
// request.setPath((String) conf.get("rewrite_path"));
// request.setHeader((String) conf.get("conf_header_name"), (String)
conf.get("conf_header_value"));
request.setHeader("para_test", "ning_test");
/* note: The value of the parameter is currently a string type.
If you need the json type, you need the upstream service to parse the string
value to json.
For example, if the arg is set as below
request.setArg("new arg", "{"key1":"value1","key2":2}");
The arg received by the upstream service will be as below
"new arg": "{\"key1\":\"value1\",\"key2\":2}"
*/
request.setArg("test_arg", "test_value");
response.setHeader("para_test", "test");
return chain.filter(request, response);
}
}
按照官网步骤打了jar包也运行了jar包,也配置了个路由

要是测试成功了 访问curl -i -X GET "http://127.0.0.1:9080/#/user/table" -i
应该会显示一个自定义的响应头para_test
但是最后没成功是为啥呢
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]