Following is the code snippet can be used as a helper class to invoke SOAP web service via proxy in Oracle ADF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 | import com.oracle.xmlns.apps.xxsrf.soaprovider.plsql.xxsrf_capex_api.XXSRF_CAPEX_API_PortType;
import com.oracle.xmlns.apps.xxsrf.soaprovider.plsql.xxsrf_capex_api.XXSRF_CAPEX_API_Service;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Map;
import java.util.Properties;
import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;
import oracle.adf.share.logging.ADFLogger;
import oracle.wsm.security.util.SecurityConstants;
import weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature;
public class WebserviceHelper {
private static final ADFLogger LOGGER = ADFLogger.createADFLogger(WebserviceHelper.class);
public WebserviceHelper() {
super();
}
// Creating instance of Service.java class
private static XXSRF_CAPEX_API_Service xXSRF_CAPEX_API_Service;
private static InputStream input = null;
private static Properties prop = new Properties();
public XXSRF_CAPEX_API_PortType getWsPort() {
String url = null;
URL urlObj;
try {
input = new FileInputStream("/app/scripts/SRFConfig.properties");
prop.load(input);
url = prop.getProperty("CAPEX_APPROVAL_URL");
LOGGER.info("WSDL URL " + url);
} catch (IOException e) {
e.printStackTrace();
}
try {
urlObj = new URL(url);
QName qName =
new QName("http://xmlns.oracle.com/apps/xxsrf/soaprovider/plsql/xxsrf_capex_api/",
"XXSRF_CAPEX_API_Service");
LOGGER.info("WSDL URL Object " + urlObj);
LOGGER.info("qName " + qName);
xXSRF_CAPEX_API_Service = new XXSRF_CAPEX_API_Service(urlObj, qName);
SecurityPoliciesFeature securityFeatures =
new SecurityPoliciesFeature(new String[] {"oracle/wss_username_token_client_policy"});
XXSRF_CAPEX_API_PortType xXSRF_CAPEX_API_PortType =
xXSRF_CAPEX_API_Service.getXXSRF_CAPEX_API_Port(securityFeatures);
// Add your code to call the desired methods.
BindingProvider bindingProvider = (BindingProvider) xXSRF_CAPEX_API_PortType;
Map<String, Object> context = bindingProvider.getRequestContext();
// context.put(WSBindingProvider.USERNAME_PROPERTY, "Test");
// context.put(WSBindingProvider.PASSWORD_PROPERTY, "Test");
context.put(SecurityConstants.ClientConstants.WSS_CSF_KEY, "user-key");
// bindingProvider.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url);
return xXSRF_CAPEX_API_PortType;
} catch (MalformedURLException e) {
LOGGER.info("Inside the catch block" + e);
e.printStackTrace();
}
return null;
}
}
|