首页 文章

WSO2 - 为ProviderAPIUsage调用APIUsageStatisticsClient时出错

提问于
浏览
1

我已经设置了WSO2 API Manager(版本1.9.1),并按照此处提供的说明将其配置为BAM(版本2.5.0):https://docs.wso2.com/display/AM191/Publishing+API+Runtime+Statistics

我正在使用MySQL服务器,可以看到api_ *表创建并在我进行API调用时更新 . 但是,当我查看统计信息时,我在控制台上看到一个异常,而UI告诉我需要配置BAM以查看仪表板 .

这是在wso2carbon.log中看到的ERROR的片段

TID: [0] [AM] [2015-11-19 11:27:39,110] ERROR {org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject} -  Error while invoking APIUsageStatisticsClient for ProviderAPIUsage {org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject}
org.wso2.carbon.apimgt.usage.client.exception.APIMgtUsageQueryServiceClientException: Error occurred while querying from JDBC databasecom.mysql.jdbc.driver
    at org.wso2.carbon.apimgt.usage.client.APIUsageStatisticsClient.queryFirstAccess(APIUsageStatisticsClient.java:2762)
    at org.wso2.carbon.apimgt.usage.client.APIUsageStatisticsClient.getFirstAccessTime(APIUsageStatisticsClient.java:2706)
    ... 65 more
Caused by: java.sql.SQLException: com.mysql.jdbc.driver
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635)
    at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:188)
    at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:128)
    at org.wso2.carbon.apimgt.usage.client.APIUsageStatisticsClient.queryFirstAccess(APIUsageStatisticsClient.java:2730)
    ... 65 more
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.driver
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:475)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:246)
    ... 71 more
TID: [0] [AM] [2015-11-19 11:27:39,138] ERROR {JAGGERY.modules.statistics.usage:jag} -  java.lang.NullPointerException: null {JAGGERY.modules.statistics.usage:jag}

我看过其他类似的帖子,但似乎没有什么是完全相关的 . 最接近的类似帖子有一个特定于SQL Server的问题,但我使用的是MySQL .

附加信息:我在同一台计算机上运行BAM和API Manager . 我按照指南中的建议将BAM的偏移量设置为3 .

2 回答

  • 0

    显然,您尚未将SQL连接器添加到/ repository / components / lib和/ repository / components / lib文件夹 . 这在https://docs.wso2.com/display/AM191/Publishing+API+Runtime+Statistics的步骤5中提到 .

    确保SQL连接器正确放置在这些位置上

  • 0

    如果您在Windows环境中尝试上述方案,请使用“mysql-connector-java-5.1.30”连接器并将其放在/ repository / components / lib和/ repository / components / lib文件夹中 . 这可能是由于连接器版本问题 .

相关问题