Ниже приведен фрагмент кода .., который должен динамически вызывать WSDL на другом сервере, но в момент вызова
(int i = webServiceModuleService.notificationRecieved("xyz");)
возвращаемое исключение: (
примечание: у меня нет ни одногоМетод beaInvoke в моем сервисе: |
public static void main(String[] args) {
java.sql.Connection conn = null;
InitialContext context;
try {
context = new InitialContext();
DataSource ds = (DataSource) context.lookup("jdbc/dataSourceDS");
conn = ds.getConnection();
} catch (SQLException e) {
} catch (NamingException e) {
}
QueryRunner run = new QueryRunner();
SampleResultSetHandler h = new SampleResultSetHandler();
Object[] res = null;
try {
res = run.query(conn, "select SERVER_IP,SERVER_PORT from SERVER where UPPER(SERVER_NAME)=? ", h, "test");
} catch (SQLException e) {
}
String ip = res[0].toString();
String port = res[1].toString();
String endpointURL = "http://" + ip + ":" + port + "/context-root/WebServiceModuleService";
try {
URL tmpURL = new URL(endpointURL + "?wsdl");
System.err.println(tmpURL);
WebServiceModuleService_Service webServiceModuleService_Service = new WebServiceModuleService_Service(tmpURL,
new QName("/org/parsisys/test/mina/model/services/common/",
"WebServiceModuleService"));
WebServiceModuleService webServiceModuleService = null;
webServiceModuleService = webServiceModuleService_Service.getWebServiceModuleServiceSoapHttpPort();
BindingProvider bp = (BindingProvider) webServiceModuleService;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
// Configure credential providers
Map<String, Object> requestContext = ((BindingProvider) webServiceModuleService).getRequestContext();
try {
setPortCredentialProviderList(requestContext);
} catch (Exception ex) {
ex.printStackTrace();
}
//Call WebService ... ==> Exception :(
int i = webServiceModuleService.notificationRecieved("xyz");
//logp("successfully call the webservice for [ip&port:" + ip + ":" + port + "] [transid : " +transid + "]");
} catch (Exception e) {
//log
//TODO: Clean This
System.err.println(e.getMessage());
e.printStackTrace();
return;
}
}
@Generated("Oracle JDeveloper")
public static void setPortCredentialProviderList(Map<String, Object> requestContext) throws Exception {
// TODO - Provide the required credential values
String username = "";
String password = "";
String clientKeyStore = "";
String clientKeyStorePassword = "";
String clientKeyAlias = "";
String clientKeyPassword = "";
String serverKeyStore = "";
String serverKeyStorePassword = "";
String serverKeyAlias = "";
List<CredentialProvider> credList = new ArrayList<CredentialProvider>();
// Add the necessary credential providers to the list
// Code commented out due to empty username/password value found in the credential.
// credList.add(getUNTCredentialProvider(username, password));
// Code commented out due to empty server keystore value found in the credential.
// credList.add(getBSTCredentialProvider(clientKeyStore, clientKeyStorePassword, clientKeyAlias, clientKeyPassword, serverKeyStore, serverKeyStorePassword, serverKeyAlias, requestContext));
credList.add(getSAMLTrustCredentialProvider());
requestContext.put(WSSecurityContext.CREDENTIAL_PROVIDER_LIST, credList);
}
@Generated("Oracle JDeveloper")
public static CredentialProvider getSAMLTrustCredentialProvider() {
return new SAMLTrustCredentialProvider();
}
Дневной динамический вызов веб-службы генерируется с помощью jdeveloper, и он работает в клиентском тестере, но в моем модуле, когда я вызываю исключение возврата веб-службы: /
StackTraceis: ↓
Метод beaInvoke предоставляется как WebMethod, но в wsdl нет соответствующей операции wsdl с именем {/ org / parsisys / test / mina / model / services / common /} beaInvoke:portType {/ org / parsisys / test / mina / model / services / common /} WebServiceModuleService javax.xml.ws.WebServiceException: метод beaInvoke представлен как WebMethod, но нет соответствующей операции wsdl с именем {/ org / parsisys / test/ mina / model / services / common /} beaInvoke в wsdl: portType {/ org / parsisys / test / mina / model / services / common /} WebServiceModuleService на com.sun.xml.ws.model.JavaMethodImpl.freeze (JavaMethodImpl.java:382) в com.sun.xml.ws.model.AbstractSEIModelImpl.freeze (AbstractSEIModelImpl.java:124) в com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel (RuntimeMode.ode336) на com.sun.xml.ws.db.DatabindingImpl. (DatabindingImpl.java:99) на com.sun.xml.ws.db.DatabindingProviderImpl.create (DatabindingProviderImpl.java:74) на com.sun.xml.ws.db.DatabindingProviderImpl.create (DatabindingProviderImpl.java:58) в com.sun.xml.ws.db.DatabindingFactoryImpl.createRuntime (DatabindingFactoryImpl.java:120) в com.sun.xml.ws.client.Wunb (WSServiceDelegate.java:882) на com.sun.xml.ws.client.WSServiceDelegate.createSEIPortInfo (WSServiceDelegate.java:899) на com.sun.xml.ws.client.WSServiceDelegate.addSEI (WSSeravaDeleg) (WSServiceDeleg).sun.xml.ws.client.WSServiceDelegate.getPort (WSServiceDelegate.java:451) на weblogic.wsee.jaxws.spi.WLSProvider $ ServiceDelegateImpl.internalGetPort (WLSProvider.java:1698) на weblogic.ws.s.$ ServiceDelegateImpl $ PortClientInstanceFactory.createClientInstance (WLSProvider.java:1769) по адресупо адресу weblogic.wsee.jaxws.spi.WLSProvider $ ServiceDelegateImpl $ 3.apply (WLSProvider.java:1555) по адресу weblogic.wsee.jaxws.spi.WLSProvider $ ServiceDelegateImpl $ 3.apply (WLSProvider.java:1517s.ax.wax.wax.w.gic..spi.ClientIdentityRegistry.initClientIdentityFeatureAndCall (ClientIdentityRegistry.java:1456) в weblogic.wsee.jaxws.spi.WLSProvider $ ServiceDelegateImpl.getPort (WLSProvider.java:1513) в com.sun.xml.ws.client.WSServiceDelegate.getPort (WSServiceDelegate.java: 420) по адресу weblogic.wsee.jaxws.spi.WLSProvider $ ServiceDelegateImpl.getPort (WLSProvider.java:1477) по адресу com.sun.xml.ws.client.WSServiceDelegate.getPort (WSServiceDelegate.java:402) по адресу jav.xml.ws.Service.getPort (Service.java:119) в org.parsisys.test.mina.model.service.WebServiceModuleService_Service.beaInvokeSuper (WebServiceModuleService_Service.java) в org.parsisys.test.mina.model.service.WebServiceModuleService_Service $ beaVersion0_31.getWebServiceModuleServiceSoapHttpPort (WebServiceModuleService_Service.java:51) в org.parsisys.test.mina.model.service.WebServiceModuleService_Service.getWebServiceModuleServiceSoapHttpPort (WebServiceModuleService_Service.java) по адресу org.parsisys.test.mina.files.notification.queue.NotificationQueueRectained $ beaVersion0_11.onMessage (NotificationQueueRectained.java:330) по адресу org.parsisys.test.mineveessue.Nectification.test.mina.NotificationQueueRectained.java) на weblogic.jms.client.JMSSession.onMessage (JMSSession.java:5107) на weblogic.jms.client.JMSSession.execute (JMSSession.java:4775)на weblogic.jms.client.JMSSession.executeMessage (JMSSession.java:4170) на weblogic.jms.client.JMSSession.access $ 000 (JMSSession.java:127) на weblogic.jms.client.JMSSession $ UseForRunnable.run (JMS).Java: 5627) в weblogic.work.SelfTuningWorkManagerImpl $ WorkAdapterImpl.run (SelfTuningWorkManagerImpl.java:666) в weblogic.invocation.ComponentInvocationContextManager._runAs (ComponentInvocationContextManager.java:348) в weblogic.invocation.ComponentInvocationContextManager.runAs (ComponentInvocationContextManager.java:333) в weblogic.work.LivePartitionUtility.doRunWorkUnderContext (LivePartitionUtility.java:54) в weblogic.work.PartitionUtility.runWorkUnderContext (PartitionUtility.java:41) в веб-логике.ExecuteThread.execute (ExecuteThread.java:406) на weblogic.work.ExecuteThread.run (ExecuteThread.java:346)
, пожалуйста, помогите мне.Тпй