ok Ho davvero un problema strano che continuo a cercare soluzioni in google e yahoo per quasi 4 ore oggi. E io alla disperata ricerca di una soluzione.javax.xml.ws.WebServiceException: tipo di porta non definito Java Struts SOAP WSDL
public static String [] checkCardAccount(String cardNumber, String cardIssuer, String securityNumber){
URL url = null;
try {
url = new URL("http://localhost:8999/bankcard?wsdl");
} catch (MalformedURLException e) {
e.printStackTrace();
}
QName qname = new QName("http://server.bcard.soap.com/","BankCardImplService");
Service service = Service.create(url,qname);
BankCard bankcard = service.getPort(BankCard.class);
return bankcard.getCardClientData(cardNumber, cardIssuer);
}
il codice di cui sopra è il mio cliente per accedere al servizio SOAP, funziona davvero in un'applicazione stand-alone Java, ma quando l'ho incorporare alla mia applicazione Java Struts dice il seguente errore sotto
javax .xml.ws.WebServiceException: tipo di porta non definita: {http://bankcard.api.com/}BankCard a com.sun.xml.internal.ws.client.WSServiceDelegate.getPort (WSServiceDelegate.java:349) a com.sun.xml.internal.ws.client.WSServiceDelegate.getPort (WSServiceDelegate.java:355) all'indirizzo javax.xml.ws.Service.getPort (Service.java:161) a com.api.bankcard.BankCardClient.checkCardAccount (BankCardClient.java:25) su com.action.CardregAction.execute (CardregAction.java: 18) a org.apache.struts.chain.commands.servlet.ExecuteAction.execute (ExecuteAction.java:58) a org.apache.struts.chain.commands.AbstractExecuteAction.execute (AbstractExecuteAction.java:67) a org.apache.struts.chain.commands.ActionCommandBase.execute (ActionCommandBase.java:51) a org.apache.commons.chain.impl.ChainBase.execute (ChainBase.java:191) a org. apache.commons.chain.generic.LookupCommand.execute (LookupCommand.java:305).515.053.691,36321 milioni a org.apache.commons.chain.impl.ChainBase.execute (ChainBase.java:191) a org.apache.struts.chain.ComposableRequestProcessor.process (ComposableRequestProcessor.java:283) a org.apache .struts.action.ActionServlet.process (ActionServlet.java:1913) a org.apache.struts.action.ActionServlet.doPost (ActionServlet.java:462) all'indirizzo javax.servlet.http.HttpServlet.service (HttpServlet. java: 637) a javax.servlet.http.HttpServlet.service (HttpServlet.java:717) a org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290) a org.apache.catalina .core.ApplicationFilt erChain.doFilter (ApplicationFilterChain.java:206) a org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) a org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java: 191) a org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) a org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) a org.apache .catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) allo org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) allo org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:857) a org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588) a org.apache.tomcat .util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489) in java.lang.Thread.run (Thread.java: 662)
Ora ho davvero vedere che il problema è lo spazio dei nomi di destinazione, perché come lo cambio i cambiamenti di errore per che si dice che i servizi valido è {http://bankcard.api.com/}BankCard
dove ho sbagliato? questo codice funziona su standalone nell'applicazione Java ma non nella mia app Web Java Struts
ha funzionato per me, grazie. @WebService (endpointInterface = "com.website.test.CalWebservice") – BustedSanta
@anil kumar, potresti mostrare un esempio su come menzionare il nome completo della porta? – Alexandr