骆驼 Uri 路径注释无法访问
Camel UriPath annotation inaccesibility
我正在为特定技术编写自定义组件,但带有@UriPath 注释的变量未初始化。 @UriParam 还可以。
我检查了 Kafka 和 Servlet 组件的端点源代码,但无法弄清楚它们与我的真正区别所在。
骆驼版本是:2.18.1
Endpont 就像:
@UriEndpoint(scheme = "elastic", title = "ElasticSearch", syntax = "elastic:url", label = "elastic")
public class ElasticSearchEndpoint extends DefaultEndpoint {
@UriPath
private String url;
@UriParam
private String searchType;
public ElasticSearchEndpoint(String endpointUri, ElasticSearchComponent component) {
super(endpointUri, component);
}
public Producer createProducer() throws Exception {
return new ElasticSearchProducer(this);
}
public Consumer createConsumer(Processor processor) throws Exception {
return null;
}
public boolean isSingleton() {
return false;
}
public String getUrl() {
return url;
}
public String getSearchType() {
return searchType;
}
public void setUrl(String url) {
this.url = url;
}
public void setSearchType(String searchType) {
this.searchType = searchType;
}
}
组件由 spring 创建:
<bean id="elastic" class="elasticsearch.ElasticSearchComponent" />
有什么想法吗?
您需要从组件 class 中设置它,并从组件中显式调用 setUri。
只有 UriParam 设置为自动。
看看所有现有的 Camel 组件是如何做到的。
顺便说一句,你的端点应该是 singleton = true。
我正在为特定技术编写自定义组件,但带有@UriPath 注释的变量未初始化。 @UriParam 还可以。
我检查了 Kafka 和 Servlet 组件的端点源代码,但无法弄清楚它们与我的真正区别所在。
骆驼版本是:2.18.1
Endpont 就像:
@UriEndpoint(scheme = "elastic", title = "ElasticSearch", syntax = "elastic:url", label = "elastic")
public class ElasticSearchEndpoint extends DefaultEndpoint {
@UriPath
private String url;
@UriParam
private String searchType;
public ElasticSearchEndpoint(String endpointUri, ElasticSearchComponent component) {
super(endpointUri, component);
}
public Producer createProducer() throws Exception {
return new ElasticSearchProducer(this);
}
public Consumer createConsumer(Processor processor) throws Exception {
return null;
}
public boolean isSingleton() {
return false;
}
public String getUrl() {
return url;
}
public String getSearchType() {
return searchType;
}
public void setUrl(String url) {
this.url = url;
}
public void setSearchType(String searchType) {
this.searchType = searchType;
}
}
组件由 spring 创建:
<bean id="elastic" class="elasticsearch.ElasticSearchComponent" />
有什么想法吗?
您需要从组件 class 中设置它,并从组件中显式调用 setUri。
只有 UriParam 设置为自动。
看看所有现有的 Camel 组件是如何做到的。
顺便说一句,你的端点应该是 singleton = true。