Fields not received when subscribing to broker document generated from WSDL

In SAG Designer, I created a new Web Service Descriptor using a WSDL as the source type. For each operation in my WSDL there was an Input and Output document type generated declaring the XML namespace and prefix as well as a Request and Response document type that the first document type references. For example:

CalculatorPortBinding_Add_Input was generated and declares an XML Namespace and contains a prefix (tns):

tns:AddRequest (Testme.wsdl.CalcWSDL_.docTypes:docTypeRef_tns_AddRequest)
Token
Value1
Value2

The XML namespace is declared in the properties of the tns:AddRequest field.

docTypeRef_tns_AddRequest - doc type referenced by CalculatorPortBinding_Add_Input:

Token
Value1
Value2

These documents are not publishable or modifiable so I created my own document type that references CalculatorPortBinding_Add_Input. I made this new doc type publishable, saved and sync’d all. In My webMethods I added the new doc type to the Can Publish and Can Subscribe tabs of my client group.

In my java application, I subscribed to my new document type and then published it from Designer with data. I get the document and see it contains no fields. This is the same code that works with other documents I have created manually in Designer and containing no namespace declarations.

I noticed when looking at the document type in MyWebMethods on the Fields tab the struct looks like this and is exactly what I am getting in my java subscriber app:

wm::is::Testme::wsdl::CalcAddRequest {
   struct {
   } AddRequest;
}

AddRequest is my reference to CalculatorPortBinding_Add_Input. So nothing from that doc type is defined in the struct.

In my java subscriber app, if I call System.out.println() on the received event, it looks like this:

event wm::is::Testme::wsdl::CalcAddRequest {
    struct {
    } AddRequest = {
    };    
    struct {
        unicode_string locale;
        unicode_string activation;
        unicode_string businessContext;
        unicode_string uuid;
        unicode_string trackId;
        int is_WireFormatVersion;
        byte is_WireTags[];
        int age;
        int flags;
        date enqueueTime;
        date recvTime;
        unicode_string pubId;
    } _env = {
        locale = "";
        activation = "wm662a54160-fa6b-1b49-8546-ffffffea28da";
        businessContext = "wm6:88be6820-1cb2-1654-b678-ffffffea2922\\snull\\snull:wm662a54160-fa6b-1b49-8546-ffffffea28da:null:IS_61:null";
        uuid = "c04473b0-efda-11e7-93bf-00000000000b";
        trackId = "c04473b0-efda-11e7-93bf-00000000000b";
        is_WireFormatVersion = 3;
        is_WireTags = { 
            11, 4, 0, 0, 0, 1, 5, 1, 4, 25, 0, 99, 0, 111, 0, 109, 0, 46, 0, 119, 0, 109, 0, 46, 0, 100, 0, 97, 0, 116, 0, 97, 0, 46, 0, 73, 0, 83, 0, 77, 0, 101, 0, 109, 0, 68, 0, 97, 0, 116, 0, 97, 0, 73, 0, 109, 0, 112, 0, 108, 4, 1, 0, 49, 5, 1, 0, 2, 4, 3, 0, 116, 0, 97, 0, 103, 4, 14, 0, 116, 0, 110, 0, 115, 0, 58, 0, 65, 0, 100, 0, 100, 0, 82, 0, 101, 0, 113, 0, 117, 0, 101, 0, 115, 0, 116, 4, 5, 0, 118, 0, 97, 0, 108, 0, 117, 0, 101, 5, 1, 0, 2, 4, 5, 0, 84, 0, 111, 0, 107, 0, 101, 0, 110, 4, 6, 0, 116, 0, 111, 0, 107, 0, 101, 0, 110, 0, 49, 4, 6, 0, 86, 0, 97, 0, 108, 0, 117, 0, 101, 0, 49, 4, 1, 0, 51, 4, 6, 0, 86, 0, 97, 0, 108, 0, 117, 0, 101, 0, 50, 4, 1, 0, 50, 2, 0, 2, 0, 2, 0
        };
        age = 0;
        flags = 16;
        enqueueTime = "01/02/2018 11:34:06.571";
        recvTime = "01/02/2018 11:34:06.571";
        pubId = "J_jRQtEolDEurgAVIwwwADXaZQs__DefaultClient";
    };
};

Does anyone know what I need to do to make these fields all show up in the doc type in my Java App?

Hi Richard,

when dealing with namespaces and prefixes on Broker documents, these can only be handled by IntegrationServer clients.
This is due to the fact the separator ‘:’ is not a valid character for Broker documents.

There should be a warning when synching such doc types to the Broker via Designer.
In your app there should be at least a document named “_env”, which is the envelope and contains the routing metadata for the document.

Regards,
Holger