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