2016-01-12 90 views
1

我根据用户指南中的说明编写了自定义身份验证处理程序。WSo2自定义处理程序:未找到类错误

我放置了我的jar/repository/components/lib并尝试从管理控制台 - >服务总线 - >服务视图中添加它到特定的API,但在日志中收到了类未找到的错误。

我能够使其工作的唯一方法是将其“推送”到WSO2的部署jar(org.wso2.carbon.apimgt.gateway_5.0.3.jar)之一的解决方法。当添加到这个jar并重新启动WSo2时,我得到了处理程序正常工作。

但我想这种解决方法不是正确的方法来做到这一点...这是一个CLASSPATH问题或我在过程中失踪,使其工作?

+1

什么是classnotfound错误?你可以发布stacktrace吗? – lakshman

+0

似乎你正在使用wso2 APIM。共享版本和日志 –

回答

0

经过进一步检查,发现我的JAR由于某种原因已经损坏。我再次构建它,现在它工作。

对于从谁试图尝试这个社会人的利益,我会后我也

1)JAR文件(APIM 1.10.0工作)的步骤:

$ cd /home/olahav/wso2/wso2am-1.10.0/repository/components/lib 
$ jar tf extensions.jar 
... 
org/wso2/carbon/test/OferAPIAuthenticationHandler_1.class 

2)API模板:

<handlers xmlns="http://ws.apache.org/ns/synapse"> 
<handler class="org.wso2.carbon.test.OferAPIAuthenticationHandler_1"/> 
#foreach($handler in $handlers) 
    <handler xmlns="http://ws.apache.org/ns/synapse" class="$handler.className"> 
     #if($handler.hasProperties()) 
     #set ($map = $handler.getProperties()) 
     #foreach($property in $map.entrySet()) 
     <property name="$!property.key" value="$!property.value"/> 
     #end 
     #end 
    </handler> 
    #end 
</handlers> 

3),因为这是一个模板,需要重新创建API。然后在服务视图检查(通过https://localhost:9443/carbon),你可以看到处理器添加到处理程序列表:

<handlers> 
     <handler class="org.wso2.carbon.test.OferAPIAuthenticationHandler_1"/> 
     <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler"> 
      <property name="apiImplementationType" value="ENDPOINT"/> 
     </handler> 
     <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler"/> 
     <handler class="org.wso2.carbon.apimgt.gateway.handlers.throttling.APIThrottleHandler"> 
      <property name="id" value="A"/> 
      <property name="policyKeyResource" value="gov:/apimgt/applicationdata/res-tiers.xml"/> 
      <property name="policyKey" value="gov:/apimgt/applicationdata/tiers.xml"/> 
      <property name="policyKeyApplication" value="gov:/apimgt/applicationdata/app-tiers.xml"/> 
     </handler> 
     <handler class="org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageHandler"/> 
     <handler class="org.wso2.carbon.apimgt.usage.publisher.APIMgtGoogleAnalyticsTrackingHandler"> 
      <property name="configKey" value="gov:/apimgt/statistics/ga-config.xml"/> 
     </handler> 
     <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler"/> 
    </handlers> 

这就是它!

感谢任何帮助过我的人。

相关问题