WSO2 - 为ProviderAPIUsage调用APIUsageStatisticsClient时出错

时间:2015-11-19 21:03:05

标签: wso2 wso2-am api-manager

我已经设置了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 :(得分:0)

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

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

答案 1 :(得分:0)

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