URGENT : How to Set username and password to ws security in Jdeveloper
853137Apr 6 2011 — edited Apr 6 2011Hi ,
I am trying to invoke a Purchase Order Webservice deployed on Oracle Apps Server.We can find that in SOA Gateway resp of Oraacle ERP.
I am using Jdev and created a java project which invokes the webservice proxy.Now in the client class I have added all the required data to invoke the ws
like responsibility , security group , NLS Language etc.
But when I run that then I get following error:
ava.rmi.RemoteException: SOAPFaultException - FaultCode [{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurity] FaultString [Missing <wsse:Security> in SOAP Header] FaultActor []No Detail; nested exception is:
weblogic.wsee.jaxrpc.soapfault.WLSOAPFaultException: Missing <wsse:Security> in SOAP Header
at com.sun.java.PO_CHANGE_API1_S_PortType_Stub.uPDATE_PO(PO_CHANGE_API1_S_PortType_Stub.java:90)
at com.sun.java.PO_CHANGE_API1_S_PortTypePortClient.uPDATE_PO(PO_CHANGE_API1_S_PortTypePortClient.java:220)
at com.sun.java.PO_CHANGE_API1_S_PortTypePortClient.main(PO_CHANGE_API1_S_PortTypePortClient.java:87)
Caused by: weblogic.wsee.jaxrpc.soapfault.WL
I know that we have to add the username and password as ws security but not sure how to add that and also where we can create those policies. Any pointer would be helpful.
The jdev client code is as follows
public class PO_CHANGE_API1_S_PortTypePortClient {
private PO_CHANGE_API1_S_PortType _port;
private List<CredentialProvider> _credProviders;
@Generated("Oracle JDeveloper")
public PO_CHANGE_API1_S_PortTypePortClient() throws Exception {
PO_CHANGE_API1_S_Service service = new PO_CHANGE_API1_S_Service_Impl();
// PO_CHANGE_API1_S_Service service = new PO_CHANGE_API1_S_Service_Impl("http://la0307.oracleads.com/webservices/SOAProvider/plsql/po_change_api1_s/?wsdl");
port = service.getPOCHANGE_API1_S_Port();
}
public static void main(String[] args) {
try {
//try
System.out.println("in main");
PO_CHANGE_API1_S_PortTypePortClient client = new PO_CHANGE_API1_S_PortTypePortClient();
client.setPortCredentialProviderList();
com.oracle.xmlns.apps.po.soaprovider.plsql.po_change_api1_s.SOAHeader header = new com.oracle.xmlns.apps.po.soaprovider.plsql.po_change_api1_s.SOAHeader();
header.setResponsibility("Integrated SOA Gateway");//"FND_REP_APP
header.setRespApplication("FND");//_REP_APP");
header.setSecurityGroup("Standard");
header.setNLSLanguage("American");
header.setOrg_Id("204");
com.oracle.xmlns.apps.po.soaprovider.plsql.po_change_api1_s.update_po.InputParameters body = new com.oracle.xmlns.apps.po.soaprovider.plsql.po_change_api1_s.update_po.InputParameters();
body.setX_PO_NUMBER("9992");
body.setX_REVISION_NUMBER(new BigDecimal(0));
body.setP_ORG_ID(new BigDecimal(204));
body.setVERSION("1.0");
body.setX_LINE_NUMBER(new BigDecimal(1));
body.setNEW_QUANTITY(new BigDecimal(345));
client.uPDATE_PO(header, body);
// add your code here
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Generated("Oracle JDeveloper")
public PO_CHANGE_API1_S_PortType getPort() {
System.out.println("in getPort");
return _port;
}
@Generated("Oracle JDeveloper")
public String getEndpoint() {
return (String) ((Stub) getPort())._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY);
}
@Generated("Oracle JDeveloper")
public void setEndpoint(String endpoint) {
((Stub) getPort())._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, endpoint);
}
@Generated("Oracle JDeveloper")
public List<CredentialProvider> getCredentialProviderList() {
System.out.println("in getCredentialProviderList");
if (_credProviders == null)
_credProviders = new ArrayList<CredentialProvider>();
System.out.println(_credProviders.size());
return _credProviders;
}
@Generated("Oracle JDeveloper")
public void addCredentialProvider(CredentialProvider cp) {
System.out.println("in addCredentialProvider");
getCredentialProviderList().add(cp);
}
@Generated("Oracle JDeveloper")
public void setPortCredentialProviderList() {
((Stub) getPort())._setProperty(WSSecurityContext.CREDENTIAL_PROVIDER_LIST, getCredentialProviderList());
}
@Generated("Oracle JDeveloper")
public void addUNTCredentialProvider(String username, String password) {
System.out.println("in addUNTCredentialProvider");
username="sysadmin";
password="sysadmin";
CredentialProvider cp =
new ClientUNTCredentialProvider(username.getBytes(), password.getBytes());
addCredentialProvider(cp);
}
@Generated("Oracle JDeveloper")
public void addBSTCredentialProvider(String clientKeyStore,
String clientKeyStorePass,
String clientKeyAlias,
String clientKeyPass,
X509Certificate serverCert) throws Exception {
System.out.println("in addBSTCredentialProvider");
CredentialProvider cp =
new ClientBSTCredentialProvider(clientKeyStore, clientKeyStorePass, clientKeyAlias, clientKeyPass, "JKS", serverCert);
addCredentialProvider(cp);
}
@Generated("Oracle JDeveloper")
public void setProxyServerInfo(String proxyHost, int proxyPort,
String username, String password) {
System.out.println("in setProxyServerInfo");
Proxy p = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
HttpTransportInfo info = new HttpTransportInfo();
info.setProxy(p);
((Stub) getPort())._setProperty("weblogic.wsee.connection.transportinfo", info);
System.out.println("in user111");
if (username != null)
{
System.out.println("in user");
((Stub) getPort())._setProperty("weblogic.webservice.client.proxyusername", username);
}
if (password != null)
((Stub) getPort())._setProperty("weblogic.webservice.client.proxypassword", password);
}
@Generated("Oracle JDeveloper")
public boolean getMaintainSession() {
return ((Boolean) ((Stub) getPort())._getProperty(Stub.SESSION_MAINTAIN_PROPERTY)).booleanValue();
}
@Generated("Oracle JDeveloper")
public void setMaintainSession(boolean maintainSession) {
((Stub) getPort())._setProperty(Stub.SESSION_MAINTAIN_PROPERTY, Boolean.valueOf(maintainSession));
}
@Generated("Oracle JDeveloper")
public OutputParameters rECORD_ACCEPTANCE(SOAHeader header,
InputParameters body) throws RemoteException {
return getPort().rECORD_ACCEPTANCE(header, body);
}
@Generated("Oracle JDeveloper")
public void rECORD_ACCEPTANCEAsync(AsyncPreCallContext apc,
SOAHeader header,
InputParameters body) throws RemoteException {
getPort().rECORD_ACCEPTANCEAsync(apc, header, body);
}
@Generated("Oracle JDeveloper")
public com.oracle.xmlns.apps.po.soaprovider.plsql.po_change_api1_s.update_po.OutputParameters uPDATE_PO(SOAHeader header,
com.oracle.xmlns.apps.po.soaprovider.plsql.po_change_api1_s.update_po.InputParameters body) throws RemoteException {
return getPort().uPDATE_PO(header, body);
}
@Generated("Oracle JDeveloper")
public void uPDATE_POAsync(AsyncPreCallContext apc, SOAHeader header,
com.oracle.xmlns.apps.po.soaprovider.plsql.po_change_api1_s.update_po.InputParameters body) throws RemoteException {
getPort().uPDATE_POAsync(apc, header, body);
}
}