在我正在处理的云连接器中,我的连接器的@connect方法无法被命中时可能的原因是什么?我的项目是从Maven云连接器原型构建的。
@source被称为正常,更新站点在Maven中生成并导入到Mule Studio中。
/**
* @param configFileLocation config File Location
*/
@Connect
public void connect(final String configFileLocation)
throws ConnectionException {
System.out.println("Connect called");
<connect code in here...>
}
@Source
public void inboundEndpoint(final String sessionID,
final SourceCallback callback) {
getSessionSourceCallbackMap().put(sessionID, callback);
}
可能是因为我不需要在connect方法中使用用户和密码参数吗? 我怀疑我需要在生成的更新站点代码中挖掘..
这可能有所帮助:在逐步调试一些代码后,调试器暂停:
ConnectorInjectionAdapter connector = new ConnectorInjectionAdapter();
并在InboundEndpointMessageSource.java中捕获未处理的异常
finally {
if (connection!= null) {
try {
castedModuleObject.releaseConnection(new FixConnectorConnectionManager.ConnectionKey(transformedConfigFileLocation), connection);
} catch (Exception _x) {
}
}
答案 0 :(得分:1)
基本检查:您的课程应使用@Connector
而不是@Module
进行注释。
尝试执行以下操作:
@ConnectionKey
添加到configFileLocation
方法的connect()
参数中,@ConnectionIdentifier
上添加getConfigFileLocation()
(如果您没有,请添加获取者)看看会发生什么。
答案 1 :(得分:1)
解决方案是将标记为@ValidateConnection的方法设为非真值(默认方法stub)
@ValidateConnection
public boolean isConnected() {
//code to say whether connected or not
}