当我的连接器的@connect方法在我正在工作的云连接器中失败时,可能的原因是什么?我的项目是由Maven云连接器原型构建的。
@source被称为fine,更新站点在Maven中被fine地生成并导入到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) {
}
}
基本检查:你的类应该用@Connector
而不是@Module
注释
试着这样做:
- 在
connect()
方法的configFileLocation
参数中增加@ConnectionKey
, - 在
getConfigFileLocation()
上添加@ConnectionIdentifier
(如果没有则添加getter)
,看看会发生什么
解决方案是使用非真值(默认方法stubb)标记@ValidateConnection
@ValidateConnection
public boolean isConnected() {
//code to say whether connected or not
}