Witam,
mam następujący problem,
Potrzebuję stworzyć program w javie, który umożliwi bezpośrednie pobieranie danych z plików wsdl VirtueMart. Dopiero zaczynam programować, więc znam tylko podstawy i nie bardzo potrafię sobie z tym poradzić. W Internecie znalazłam kilka informacji jak to zrobić spróbowałam napisać coś na tej podstawie ale nie działa.
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransport;
public class connecting {
private static String URL = "http://localhost/sklepwww/administrator/components/com_vm_soa/services/VM_OrderWSDL.php?wsdl";
private static final String NAMESPACE = "http://www.virtuemart.net/VM_Order/";
private static final String METHOD_NAME = "getOrder";
public static void main(String[] args) {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransport http = new HttpTransport(URL);
try {
http.call(METHOD_NAME, envelope);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
System.out.print(response);
} catch (Exception ex) {
System.out.println("URL:" + URL);
ex.printStackTrace();
}
}
}
otrzymuję błędy:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/microedition/io/Connector
at org.ksoap2.transport.ServiceConnectionMidp.<init>(Unknown Source)
at org.ksoap2.transport.HttpTransport.getServiceConnection(Unknown Source)
at org.ksoap2.transport.HttpTransport.call(Unknown Source)
at VirtueMart.connecting.main(connecting.java:30)
Caused by: java.lang.ClassNotFoundException: javax.microedition.io.Connector
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
Tak jak mówię dopiero zaczynam pracę z Javą i od razu dostałam takie jak dla mnie dość trudne zadanie, dlatego bardzo proszę o pomoc.
Próbowałam też inną metodą:
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceFactory;
public class connecting {
public static void main(String[] args) {
{
try {
QName serviceName = new QName("http://www.virtuemart.net/VM_Order/","VM_Order");
URL wsdlLocation = new URL("http://localhost/sklepwww/administrator/components/com_vm_soa/services/VM_OrderWSDL.php?wsdl");
// Service
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(wsdlLocation,serviceName);
}
catch (Throwable t) {
t.printStackTrace();
}
}
}
}
ale otrzymuję błędy:
javax.xml.rpc.ServiceException: java.lang.ClassNotFoundException: org.apache.axis.client.ServiceFactory
at javax.xml.rpc.ServiceFactory.newInstance(ServiceFactory.java:69)
at VirtueMart.connecting.main(connecting.java:17)
Podejrzewam, że mój problem z połączeniem jest również związany z zabezpieczeniami virtuemarta. Podczas łączenia przez wtyczkę eclipse trzeba podać hasło i login. Na tronie virtuemart jest podany kod jakim można się łączyć : http://www.virtuemart-datamanager.com/index.php?option=com_content&view=article&id=53:java-soap-client&catid=27:new-to-joomla&Itemid=44
z tym, że nigdzie nie mogę znaleźć biblioteki do tego potrzebnej...vm_soap_client.jar