Quantcast
Channel: SCN : All Content - SAP NetWeaver Application Server
Viewing all articles
Browse latest Browse all 2997

Problem with XML validation in NW BPM web service

$
0
0

Hello,

 

I´m developing some web services with business processes in NWDS 7.31 to be deployed in NW Java AS. I´m not using NW PI. I wanted to validate the XML requests against their XSD, so I decided to create an intermediate web service in an EJB. I tried different approaches.

 

The first one was to use @SchemaValidation but when I try to build it, it appears: packet not found. I think that the reason is the library: com.sun.xml.internal.ws.developer.SchemaValidation. As it is internal, it should not be used and gives problems of compilation. For avoiding it with javac, the next option can be specified: -XDignore.symbol.file=true. I am not really sure how to set it in the Eclipse environment. I tried with the compiler preferences, but I didn´t find it, with the JVM arguments, but it didn´t work, and also with the ant arguments. I´m not really sure how to get it. Of course I also tried to import directly the library but nothing.

 

The second option was creating a @WebServiceProvider. Here the problem is that wsdlLocation cannot be found: "The WSDL file given in wsdl-file element of webservices.xml or @javax.jws.WebService.wsdLocation element could not be found. WSDL location: [./ejbModule/META-INF/wsdl/Authorization.wsdl] ". But the path seems to be correctly given: @WebServiceProvider(portName="Tests17Port", serviceName="Tests17Service", wsdlLocation="./ejbModule/META-INF/wsdl/Authorization.wsdl"). I´m not sure if this has something to do with the problem found in the next note: http://search.sap.com/notes?id=0001418019, but I´m using SAP Netweaver BPC 731 SP3: BPM Ivy Development purposes.

 

As this options was giving problems, I decided to create my own validator and I stored it in a Logicalhandler (third approach), so I can access directly to the payload. It works fine, but the security policies of SAP NW AS are not applied. In fact, if I try to call it from the Web Service Navigator, it gives me the next error:

 

Web service returned error. Fault Code: "(http://schemas.xmlsoap.org/soap/envelope/)Server" Fault String: "com.sap.engine.services.webservices.jaxws.handlers.JAXWSHandlersException: No handler chain configuration found for configuration with id '-178749473[sap.com/tests01_ear_HTTPAuthOverHTTP_1]'"

 

As I have to use the @HandlerChain annotation, it seems like if the handlers that SAP NW AS normally apply, disappear. I tried to implement the security layer by my own, but I don´t go beyond preemptive authentication. Anyway, I´m sure that implementing security by my own is not the way.

 

The next options that I have thought are implementing it with Axis2 or using SAP NW PI. Axis2 uses Maven, and it´s something that I don´t like. Anyway, this is neither an option, due its incompatibility with SAP NW. In fact, when one try to create a new web service with Axis2, it appears the next error message:  "SAP Server does not support the Apache Axis2 Web service runtime. Choose a different server or runtime to proceed through the Web services wizard"

 

I´m not really sure, but I think that PI seems to be too much complicated for only two web services.

 

Thanks in advance


Viewing all articles
Browse latest Browse all 2997

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>