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.?
Based on error you provided,
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: