SOAP Attachment

Hi

Probierte es aus und es kam eine Hinweismeldung:

Java:
The service class "StatisticsService" does not comply to one or more requirements of the JAX-RPC 1.1 specification, and may not deploy or function correctly.

dann habe ich diese jar von JAX-RPC 1.1 noch eingefügt, obwohl das ja eigentlich in dem AXIS2 packet sein müsste.
Nachdem ich es also eingefügt habe, habe ich die Hinweismeldung ignoriert und auf finish geklickt
-> dann kam diese Fehlermeldung:

Java:
IWAB0399E Error in generating Java from WSDL:  java.io.IOException: Type {http://om.axiom.apache.org}OMElement is referenced but not defined.

Hoffe das sagt dir mehr
 
Naja es scheint die Definition des OMElement in dem WSDL zu fehlen, oder? Hast du das RPC Jar auch in deinem Projekt?

Gruß
Ollie
 
ja ich habe das in das Projekt eingefügt.
Anhand deines ersten Links habe ich versucht dieses SOAP Attachment zu realisieren

Java:
import javax.activation.DataHandler;
import javax.activation.FileDataSource;

import org.apache.axis2.context.MessageContext;


public class Bild2 {
	public void setzteBild(){
		MessageContext m = new MessageContext();
		FileDataSource dataSource = new FileDataSource("c:/bild.jpeg");
		DataHandler dataHandler = new DataHandler(dataSource);
		String contendId = m.addAttachment(dataHandler);
		System.out.println(contendId);
		/**
		 * if(m.getAttachment("contentId")!=null){
			System.out.println("Angehängt");
		}
		else{
			System.out.println("kein Att da");
		}
		 */
	}
}
aber selbst da hat er ne fehlermeldung...
Java:
INFO: Exception:
java.lang.NoClassDefFoundError: javax/activation/DataSource
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:177)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:160)
	at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:142)
	at org.apache.axis.utils.cache.ClassCache.lookup(ClassCache.java:85)
	at org.apache.axis.providers.java.JavaProvider.getServiceClass(JavaProvider.java:428)
	at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:461)
	at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:286)
	at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:500)
	at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:274)
	at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:260)
	at org.apache.axis.deployment.wsdd.WSDDDeployment.getService(WSDDDeployment.java:427)
	at org.apache.axis.configuration.FileProvider.getService(FileProvider.java:231)
	at org.apache.axis.AxisEngine.getService(AxisEngine.java:311)
	at org.apache.axis.MessageContext.setTargetService(MessageContext.java:756)
	at org.apache.axis.handlers.http.URLMapper.invoke(URLMapper.java:50)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:239)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Unknown Source)
Irgendwas muss ja nicht korrekt sein, weil wenn ich den Server debugge kommt die Warnung:

Java:
Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
 
Zuletzt bearbeitet:
Ahhhh... das sieht doch schon besser aus. Du brauchst noch die Jars activation.jar und mail.jar im classpath. Beides Bibliotheken der J2EE Api. Die sollten der Axis Distri eigentlich beiliegen.

Gruß
Ollie
 
komischer Weise sind die aber im Axis2 archiv schon enthalten.
eigentlich müsste das doch reichen... oder?
Kann ich das den einfach machen, dass ich ein Axis-webservice anlege mit der Library von Axis2?
Weil wenn ich die Library von Axis nehme, bekomme ich die Fehlermeldung, dass der Konstruktor undefiniert ist:
Java:
MessageContext m = new MessageContext();
und die Methode gibt es dann nicht:
Java:
m.addAttachment(dataHandler);
 
Achso da muss das auch rein..
habe ich eingefügt und neu generiert, server neugestartet, aber es ist leider immer noch einen Fehler drin.

nochmal die Klasse

Java:
import javax.activation.DataHandler;
import javax.activation.FileDataSource;

import org.apache.axis2.context.MessageContext;


public class Bild2 {
	public void setzteBild(){
		MessageContext m = new MessageContext();
		FileDataSource dataSource = new FileDataSource("c:/bild.jpeg");
		DataHandler dataHandler = new DataHandler(dataSource);
		String contendId = m.addAttachment(dataHandler);
		System.out.println(contendId);
		/**
		 * if(m.getAttachment("contentId")!=null){
			System.out.println("Angehängt");
		}
		else{
			System.out.println("kein Att da");
		}
		 */
	}
}


request:
Java:
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://DefaultNamespace" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Body>
  <q0:setzteBild /> 
  </soapenv:Body>
  </soapenv:Envelope>

response
Java:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Body>
- <soapenv:Fault>
  <faultcode>soapenv:Server.userException</faultcode> 
  <faultstring>java.lang.reflect.InvocationTargetException</faultstring> 
- <detail>
  <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">entwicklung08</ns1:hostname> 
  </detail>
  </soapenv:Fault>
  </soapenv:Body>
  </soapenv:Envelope>
 
Zurück