0

I extract the Java files using 'wsimport' from https://webservices.netsuite.com/wsdl/v2020_2_0/netsuite.wsdl , but I can't able to bind TokenPassport and others into the Header section. I create the port object from the NetSuiteService

import org.apache.axis.client.Stub;
import org.apache.axis.message.SOAPHeaderElement;

import com.netsuite.webservices.platform.core_2020_2.GetAllRecord;
import com.netsuite.webservices.platform.core_2020_2.TokenPassport;
import com.netsuite.webservices.platform.core_2020_2.types.GetAllRecordType;
import com.netsuite.webservices.platform_2020_2.NetSuitePortType;
import com.netsuite.webservices.platform_2020_2.NetSuiteService;

 NetSuiteService netSuiteService = new NetSuiteService();           
 NetSuitePortType port= netSuiteService.getNetSuitePort();

''' Then create TokenPassport and try to bind SOAPHeaderElement to the port using axis Stub; but unfortunately got an exception like class cast exception.

TokenPassport passport = TokenUtil.getPassport();
String namespace = "urn:messages_2020_2.platform.webservices.netsuite.com";
SOAPHeaderElement tokenPassportHeader = new SOAPHeaderElement(namespace,"tokenPassport",passport);
((Stub)port).setHeader(tokenPassportHeader);    

java.lang.ClassCastException: com.sun.proxy.$Proxy37 cannot be cast to org.apache.axis.client.Stub

How can i Bind TokenPassport into the Header.?

1 Answers1

0

Based on error you provided,

java.lang.ClassCastException: com.sun.proxy.$Proxy37 cannot be cast to org.apache.axis.client.Stub

it looks like there is no issue with the TokenPassport header but rather runtime class cast exception. Not sure how it happens in your code but there something that bothers me in these two lines:

 NetSuiteService netSuiteService = new NetSuiteService();           
 NetSuitePortType port= netSuiteService.getNetSuitePort();
  • NetsuiteService is an Interface and requires a dozen of methods to be implemented so I am not sure how the netSuiteService is instantiated in your code.
  • to get the instance of NetSuitePortType it is recommended to use the implementation of the NetSuiteServiceLocator interface (which in turn is NetsuiteService)