L'envoi d'un fichier pdf vers un client de serveur via le service web

Comme je suis nouveau service web, pouvez-vous s'il vous plaît dites la réponse à ma question.
Ma question est

Je veux implémenter un service web qui envoie des fichiers pdf au client que le client appelle ce service web.

Il vous plaît quelqu'un m'aider avec un beau morceau de code ou de l'explication.

Peut maintenant quelques une, merci de résoudre mon erreur.

De 12 à 23 09:42:48.429: DEBUG/installd(32): DexInv: --- BEGIN '/data/app/vmdl33143.tmp' ---
De 12 à 23 09:42:51.708: DEBUG/dalvikvm(328): DexOpt: 'Lorg/xmlpull/v1/XmlPullParser;' a une définition; bloquer
De 12 à 23 09:42:51.730: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/io/KXmlParser;' a une définition; bloquer
De 12 à 23 09:42:51.749: DEBUG/dalvikvm(328): DexOpt: 'Lorg/xmlpull/v1/XmlSerializer;' a une définition; bloquer
De 12 à 23 09:42:51.759: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/io/KXmlSerializer;' a une définition; bloquer
De 12 à 23 09:42:51.779: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/kdom/Node;' a une définition; bloquer
De 12 à 23 09:42:51.779: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/kdom/Document;' a une définition; bloquer
De 12 à 23 09:42:51.819: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/kdom/Élément;' a une définition; bloquer
De 12 à 23 09:42:51.830: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/wap/Wbxml;' a une définition; bloquer
De 12 à 23 09:42:51.840: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/wap/WbxmlParser;' a une définition; bloquer
De 12 à 23 09:42:51.900: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/wap/WbxmlSerializer;' a une définition; bloquer
De 12 à 23 09:42:51.910: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/wap/syncml/SyncML;' a une définition; bloquer
De 12 à 23 09:42:51.910: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/wap/wml/Wml;' a une définition; bloquer
De 12 à 23 09:42:51.929: DEBUG/dalvikvm(328): DexOpt: 'Lorg/kxml2/wap/wv/WV;' a une définition; bloquer
De 12 à 23 09:42:51.929: DEBUG/dalvikvm(328): DexOpt: 'Lorg/xmlpull/v1/XmlPullParserException;' a une définition; bloquer
De 12 à 23 09:42:51.949: DEBUG/dalvikvm(328): DexOpt: 'Lorg/xmlpull/v1/XmlPullParserFactory;' a une définition; bloquer
De 12 à 23 09:42:53.299: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/xmlpull/v1/XmlPullParser;'
De 12 à 23 09:42:53.319: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/xmlpull/v1/XmlPullParser;'
De 12 à 23 09:42:53.329: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/xmlpull/v1/XmlPullParser;'
De 12 à 23 09:42:53.350: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/xmlpull/v1/XmlPullParser;'
De 12 à 23 09:42:53.350: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/xmlpull/v1/XmlPullParser;'
De 12 à 23 09:42:53.370: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/xmlpull/v1/XmlPullParser;'
De 12 à 23 09:42:53.499: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/xmlpull/v1/XmlPullParser;'
De 12 à 23 09:42:53.560: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/xmlpull/v1/XmlPullParser;'
De 12 à 23 09:42:53.570: INFO/dalvikvm(328): DexOpt: non-résolution ambiguë de la classe de Lorg/kxml2/io/KXmlSerializer;'
De 12 à 23 09:42:53.659: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/xmlpull/v1/XmlPullParser;': plusieurs définitions
De 12 à 23 09:42:53.668: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/io/KXmlParser;': plusieurs définitions
De 12 à 23 09:42:53.668: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/xmlpull/v1/XmlSerializer;': plusieurs définitions
De 12 à 23 09:42:53.668: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/io/KXmlSerializer;': plusieurs définitions
De 12 à 23 09:42:53.680: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/kdom/Node;': plusieurs définitions
De 12 à 23 09:42:53.690: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/kdom/Document;': plusieurs définitions
De 12 à 23 09:42:53.709: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/kdom/Élément;': plusieurs définitions
De 12 à 23 09:42:53.709: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/wap/Wbxml;': plusieurs définitions
De 12 à 23 09:42:53.719: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/wap/WbxmlParser;': plusieurs définitions
De 12 à 23 09:42:53.719: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/wap/WbxmlSerializer;': plusieurs définitions
De 12 à 23 09:42:53.719: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/wap/syncml/SyncML;': plusieurs définitions
De 12 à 23 09:42:53.719: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/wap/wml/Wml;': plusieurs définitions
De 12 à 23 09:42:53.719: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/kxml2/wap/wv/WV;': plusieurs définitions
De 12 à 23 09:42:53.719: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/xmlpull/v1/XmlPullParserException;': plusieurs définitions
De 12 à 23 09:42:53.719: DEBUG/dalvikvm(328): DexOpt: ne pas vérifier 'Lorg/xmlpull/v1/XmlPullParserFactory;': plusieurs définitions
De 12 à 23 09:42:53.829: DEBUG/dalvikvm(328): DexOpt: charge 867ms, vérifiez 1752ms, optez 108ms
De 12 à 23 09:42:54.029: DEBUG/installd(32): DexInv: --- FIN '/data/app/vmdl33143.tmp'(succès) ---

Cette Erreur dans DDMS de l'émulateur android.

Maintenant mon service web & code ressemble aime cela.

Code:-

package com.uks.webservice;

import java.io.FileNotFoundException;  
import java.io.IOException;  
import java.rmi.Remote;  

public interface SendPDF extends Remote {

    public String[] sendPDF() throws FileNotFoundException, IOException,
            Exception;
}

Principal de la Classe de service web est créé:-

package com.uks.webservice;
import java.io.File;   
import java.io.FileNotFoundException;  
import java.io.IOException;  
import java.io.InputStream;  
import javax.activation.DataHandler;  
import javax.activation.FileDataSource;  
import sun.misc.BASE64Encoder;  
public class SendPDFImpl implements SendPDF {
@Override
public String[] sendPDF() {
String[] pdfFile = new String[2];
BASE64Encoder encoder = new BASE64Encoder();
File file = new File(
"C:/eclipse/workspace/AIPWebService/src/test.pdf");
DataHandler dh = new DataHandler(new FileDataSource(file));
String readLine = null;
byte[] data = new byte[(int) file.length()];
int offset = 0;
int numRead = 0;
InputStream stream = null;
try {
System.out.println("Web Service Called Successfully");
stream = dh.getInputStream();
//BufferedReader bufferedReader = new BufferedReader(
//new InputStreamReader(stream));
while (offset < data.length
&& (numRead = stream.read(data, offset, data.length
- offset)) >= 0) {
offset += numRead;
}
readLine = encoder.encode(data);
//while ((readLine = bufferedReader.readLine()) != null) {
System.out.println("'Reading File............................");
System.out.println("\n");
System.out.println("Data Reading Successful");
pdfFile[0] = file.getName();
pdfFile[1] = readLine;
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return pdfFile;
}
}

Service Web:-

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://webservice.uks.com"
xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://webservice.uks.com"
xmlns:intf="http://webservice.uks.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--
WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006
(06:55:48 PDT)
-->
<wsdl:types>
<schema elementFormDefault="qualified" targetNamespace="http://webservice.uks.com"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="sendPDF">
<complexType />
</element>
<element name="sendPDFResponse">
<complexType>
<sequence>
<element maxOccurs="unbounded" name="sendPDFReturn" type="xsd:String" />
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="sendPDFRequest">
<wsdl:part element="impl:sendPDF" name="parameters" />
</wsdl:message>
<wsdl:message name="sendPDFResponse">
<wsdl:part element="impl:sendPDFResponse" name="parameters" />
</wsdl:message>
<wsdl:portType name="SendPDFImpl">
<wsdl:operation name="sendPDF">
<wsdl:input message="impl:sendPDFRequest" name="sendPDFRequest" />
<wsdl:output message="impl:sendPDFResponse" name="sendPDFResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="SendPDFImplSoapBinding" type="impl:SendPDFImpl">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="sendPDF">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="sendPDFRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="sendPDFResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="SendPDFImplService">
<wsdl:port binding="impl:SendPDFImplSoapBinding" name="SendPDFImpl">
<wsdlsoap:address
location="http://localhost:8080/AIPWebService/services/SendPDFImpl" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Et Maintenant Mon Code Android.

package com.uks.android.webservice;
import android.app.Activity;  
import android.os.Bundle;  
import android.widget.TextView;  
import org.ksoap2.SoapEnvelope;  
import org.ksoap2.serialization.SoapObject;  
import org.ksoap2.serialization.SoapSerializationEnvelope;  
import org.ksoap2.transport.AndroidHttpTransport;  
public class PDFActivity extends Activity {  
private final String METHOD_NAME = "sendPDF";  
private final String NAMESPACE = "http://webservice.uks.com/";  
private final String SOAP_ACTION = NAMESPACE + METHOD_NAME;  
private final String URL = "http://192.168.1.123:8080/AIPWebService/services/SendPDFImpl";  
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textViewOne = (TextView) findViewById(R.id.textViewOne);
TextView textViewTwo = (TextView) findViewById(R.id.textViewTwo);
try {
SoapObject soapObject = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(soapObject);
textViewOne.setText("Web Service Started");
AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
httpTransport.call(SOAP_ACTION, envelope);
SoapObject result = (SoapObject) envelope.getResponse();
textViewTwo.setText(result.toString());
//Object result = envelope.getResponse();
//FileOutputStream outputStream = openFileOutput(name, mode)
} catch (Exception e) {
e.printStackTrace();
}
}
}

S'il vous plaît aider moi.

Merci à l'avance.

OriginalL'auteur Shashank_Itmaster | 2010-12-22