I also posted this question to the SOAPBuilders list today. It is really a WSDL/WSTK/interop question, but I'm hoping someone who has used or helped develop the WSTK toolkit might have an answer. WSDL specifies the value of the SOAPAction header at operation level of the service bindings. This implies that I should be able to specify a unique SOAPAction value for each of my operations. Apache 2.2 client code supports this by specifying the SOAPAction value as a parameter of the invoke method of the service. However, the proxy generator in WSTK (proxygen) generates Java that uses a single SOAPAction URI for the entire class. If different SOAPAction values are specified for each operation, the proxy generator seems to take the last one it finds and applies it to the class as a whole, so that the different service methods are undifferentiated in the SOAPAction values that they send to the SOAP server. Isn't this a bug in the proxy generator? Or am I misinterpreting the WSDL spec?