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?