클라이언트 프로젝트 및 웹 서비스 프로젝트에 정의 된 직렬화 가능을 구현하는 사용자 정의 객체가 있습니다. 나는 비누 메시지를 통해 바이트 배열로 객체를 전달하려는, 그러나 나는이 작업을 수행 할 때, 객체를 재건에서 웹 서비스의 방법은 다음과 스택으로 클래스를 찾을 수 없습니다 예외가 있습니다바이트 배열에 Java 직렬화 가능 객체를 webservice로 보내기 java.lang.classnotfoundexception
java.lang.ClassNotFoundException: com.myproject.biosign.client.vo.Istante
주 예외로 참조 된 경로가 클라이언트에있는 객체의 경로이고 올바르게 웹 서비스에서 찾을 수 없다는 것을 의미합니다. 어떻게 내가 webservice에서 동일한 개체의 정의와 개체를 다시 작성할 수 있습니까?
변환 코드, 전송 코드 및 해독 코드를 따르십시오.
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
out = new ObjectOutputStream(bos);
out.writeObject(istanti.get(0));
byte[] yourBytes = bos.toByteArray();
out.close();
bos.close();
request.addProperty("lista", yourBytes);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = false;
envelope.setOutputSoapObject(request);
Marshal floatMarshal = new MarshalFloat();
floatMarshal.register(envelope);
new MarshalBase64().register(envelope);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
androidHttpTransport.call(SOAP_ACTION, envelope);
WS 방법에있어서 : 클라이언트 방법에
ByteArrayInputStream bis = new ByteArrayInputStream(lista);
ObjectInput in = null;
try {
in = new ObjectInputStream(bis);
Object o = in.readObject();
Istante ist = (Istante) o;
System.out.println("eccoci" + ist.getXCoord());
bis.close();
in.close();