0

当我的连接器的@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);
    }

这可能与我不需要在连接方法中包含用户和密码参数有关吗?我怀疑我需要挖掘生成的更新站点代码..

也许这会有所帮助:在单步执行一些代码后,调试器会暂停:

  ConnectorInjectionAdapter connector = new ConnectorInjectionAdapter();

在 InboundEndpointMessageSource.java 中,捕获了未处理的异常

finally {
            if (connection!= null) {
                try {
                    castedModuleObject.releaseConnection(new FixConnectorConnectionManager.ConnectionKey(transformedConfigFileLocation), connection);
                } catch (Exception _x) {
                }
            }
4

2 回答 2

1

基本检查:你的类应该用@Connectornot注释@Module

尝试执行以下操作:

  • 添加@ConnectionKey到方法的configFileLocation参数connect()
  • 添加(如果没有,请添加吸气剂@ConnectionIdentifiergetConfigFileLocation()

看看会发生什么。

于 2013-06-19T16:11:52.210 回答
1

解决方案是使用非真值标记@ValidateConnection 的方法(默认方法存根)

@ValidateConnection
public boolean isConnected() {
    //code to say whether connected or not
}
于 2013-06-20T17:53:10.340 回答