0 Replies Latest reply on Dec 13, 2011 6:53 PM by 761616

    [Integrated SOA Gateway] Publish Java based web service


      Lately I have been trying to publish Java based web service through Integrated SOA Gateway. The documentation states that:

      +"Custom interface definitions can be created for various interface types including custom interface definitions for XML Gateway Map, Business Event, PL/SQL, Concurrent Program, Business Service Object, Java (except for Java APIs for Forms subtype) and Composite Service for BPEL type."+ (Integrated SOA Gateway Developer's Guide Release 12.1, "Creating and Using Custom Integration Interfaces")

      After familiarizing myself with $FND_TOP/bin/irep_parser.pl and $FND_TOP/bin/FNDLOAD tools, I have started coding my POJOs. Initially I have come up with three classes - request/response objects and service implementation. Service implementation has been annotated with "@rep:X" descriptors according to "Java Annotations" section of the documentation. While invoking $FND_TOP/bin/irep_parser.pl I have received errors about class resolution. My solution was to transform request and response types to static inner classes. This way I ended up with one *.java source file (see below).

      * Sample ISG Service.
      * @rep:scope public
      * @rep:product AP
      * @rep:displayname My Custom ISG Service.
      public class MyService {
      public static class Request {
      private String id;

      public void setId(String id) {
      this.id = id;

      public String getId() {
      return id;

      public static class Response {
      private String data;

      public void setData(String data) {
      this.data = data;

      public String getData() {
      return data;

      * Sample operation.
      * @param request Request Object.
      * @return Return Object.
      * @rep:displayname Test operation.
      public MyService.Response testOperation(MyService.Request request) {
      MyService.Response response = new MyService.Response();
      response.setData("Some Data");
      return response;

      ILDT file has been successfully created and uploaded. However, I could not see the "Generate WSDL" button on Integrated Repository website. Is there any particular interface or superclass that my service implementation should extend? I have reviewed "PurchaseOrderSDO" example posted in the developer's guide (page 407), but I couldn't come up with a working solution. Could you provide me with more detailed tutorial/example? Which documentation sections should I read again?

      After searching through forum, I have spotted $FND_TOP/bin/soagenerate.sh script, and thought that lack of "Generate WSDL" button was an EBS defect. After running the script, I have received an error:
      Error in Service Generation.
      ServiceGenerationError: Interface Type (JAVA) Interface SubType (null) is not supported.
      oracle.apps.fnd.soa.util.SOAException: ServiceGenerationError: Interface Type (JAVA) Interface SubType (null) is not supported.
           at oracle.apps.fnd.soa.provider.wsdl.ArtifactsFactory.getArtifactsGenerator(ArtifactsFactory.java:55)
           at oracle.apps.fnd.soa.provider.wsdl.WSDLGenerator.generateServiceWSDL(WSDLGenerator.java:128)
           at oracle.apps.fnd.soa.provider.wsdl.ServiceGenerator.generateSOAService(ServiceGenerator.java:75)
           at oracle.apps.fnd.soa.provider.wsdl.ServiceGenerator.generateSingleService(ServiceGenerator.java:88)
           at oracle.apps.fnd.soa.provider.wsdl.ServiceGenerator.main(ServiceGenerator.java:419)

      I would be grateful for any suggestions. Has anyone published Java based web service through ISG?

      Best regards,