[英]WSo2 custom handler: Class Not Found error
我根据用户指南中的说明编写了一个自定义身份验证处理程序。
我放置了jar / repository / components / lib并尝试从管理控制台->服务总线->服务视图将其添加到特定的API,但是在日志中收到未找到类的错误。
我能够使其工作的唯一方法是将其“推送”到WSO2的一个部署jar(org.wso2.carbon.apimgt.gateway_5.0.3.jar)的变通方法。 将其添加到此jar并重新启动WSo2后,我使处理程序正常工作。
但是我猜想这种解决方法不是正确的方法……这是CLASSPATH问题还是我在使其正常运行的过程中缺少的东西?
经过进一步检查后,发现我的JAR出于某种原因已损坏。 我再次构建它,现在可以使用了。
为了使社区中任何尝试这样做的人都能从中受益,我将发布我所做的步骤(使用APIM 1.10.0)
1)JAR文件:
$ 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>
而已!
感谢任何帮助我完成任务的人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.