2016-04-08 14 views
1

Ich arbeite an WSO2 Business-Rule-Management-Lösung (WSO2 brs), und ich habe successfuly die Schritte zum Erstellen einer ersten Regel beendet: https://docs.wso2.com/display/BRS220/Creating+and+Deploying+the+Rule+Serviceaktivieren REST auf WSO2 Business Rule Server

Die Regel ist derzeit erreichbar unter Verwendung von das SOAP-Protokoll, aber ich möchte REST verwenden. Ich sehe in der Dokumentation, dass es einen Weg geben muss, dies zu erreichen (https://docs.wso2.com/display/BRS220/Features), aber ich finde keine Hinweise, wie man es auf BRS macht.

Hier einige Zeilen meiner Wsdl Definition:

<wsdl2:service name="OrderApprovalService" interface="tns:ServiceInterface"> 
    <wsdl2:endpoint name="OrderApprovalServiceHttpsEndpoint" binding="tns:OrderApprovalServiceHttpBinding" address="https://10.130.3.70:9443/services/OrderApprovalService.OrderApprovalServiceHttpsEndpoint/"/> 
    <wsdl2:endpoint name="OrderApprovalServiceHttpSoap12Endpoint" binding="tns:OrderApprovalServiceSoap12Binding" address="http://10.130.3.70:9763/services/OrderApprovalService.OrderApprovalServiceHttpSoap12Endpoint/"/> 
    <wsdl2:endpoint name="OrderApprovalServiceHttpsSoap12Endpoint" binding="tns:OrderApprovalServiceSoap12Binding" address="https://10.130.3.70:9443/services/OrderApprovalService.OrderApprovalServiceHttpsSoap12Endpoint/"/> 
    <wsdl2:endpoint name="OrderApprovalServiceHttpSoap11Endpoint" binding="tns:OrderApprovalServiceSoap11Binding" address="http://10.130.3.70:9763/services/OrderApprovalService.OrderApprovalServiceHttpSoap11Endpoint/"/> 
    <wsdl2:endpoint name="OrderApprovalServiceHttpEndpoint" binding="tns:OrderApprovalServiceHttpBinding" address="http://10.130.3.70:9763/services/OrderApprovalService.OrderApprovalServiceHttpEndpoint/"/> 
    <wsdl2:endpoint name="OrderApprovalServiceHttpsSoap11Endpoint" binding="tns:OrderApprovalServiceSoap11Binding" address="https://10.130.3.70:9443/services/OrderApprovalService.OrderApprovalServiceHttpsSoap11Endpoint/"/> 
</wsdl2:service> 

Ich sehe, dass es eine „OrderApprovalServiceHttpsEndpoint“ und ein „OrderApprovalServiceHttpEndpoint“, die zu einer REST-Webservice, aber alle meine Versuche zu erreichen, sie haben entsprechen könnten gescheitert. Wenn ich dieses Modell in POST-Anfrage zu senden versuchen:

<OrderApprovalRequest> 
    <placeOrder> 
     <price>7</price> 
     <quantity>7</quantity> 
     <symbol>Company A</symbol> 
    </placeOrder> 
</OrderApprovalRequest> 

ich einen Fehler 500:

java.lang.NullPointerException 
    org.apache.axis2.transport.http.AxisServlet.handleFault(AxisServlet.java:427) 
    org.apache.axis2.transport.http.AxisServlet.processAxisFault(AxisServlet.java:398) 
    org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:188) 
    org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) 
    org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128) 
    org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88) 
    org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:59) 
    org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) 

Gibt es jemanden hier, der bereits erfolgreich zu tun? Oder wer weiß, ob das möglich ist?

Danke

Antwort

0

Sie Ihr Szenario für den Dienst mit dem Tryit Werkzeug versuchen könnte. https://docs.wso2.com/display/BRS200/Testing+WSDLs Sie können dort den HTTP-Endpunkt auswählen und die generierten Nachrichten erfassen und diese mithilfe von curl und try für den Endpunkt verwenden.

+0

Hallo, Danke für Ihre Antwort. Aber ich versuche das schon, und das scheint nur mit SOAP-Diensten zu funktionieren. –