2009-03-31 2 views
0
public class Person { 
    private String firstname; 
    private String lastname; 
    private PhoneNumber phone; 
    private PhoneNumber fax; 
    // ... constructors and methods 
    private void calculate() 
    { 
    } 
} 
나는 서버 측에있는 자바 객체 직렬화 및 클라이언트에 보낸

내가 자바 스크립트 사용하여 자바 객체로 그 XML 문자열을 역 직렬화하고 사람 클래스의 메서드를 실행할 수있는 방법JavaScript로 자바 객체 직렬화를 처리하려면 어떻게해야합니까?

XStream xstream = new XStream(new DomDriver()); 

Person joe = new Person("Joe", "Walnes"); 
joe.setPhone(new PhoneNumber(123, "1234-456")); 
joe.setFax(new PhoneNumber(123, "9999-999")); 

String xml = xstream.toXML(joe); 

자바 스크립트를 사용하여 클라이언트 측에서?

구문 또는 지침과 함께 도와주세요.

+0

이전 질문과 중복되지 않습니까? 나는 여기 deja vu의 독특한 감각을 얻고있다 –

답변

0

XML이 자바 스크립트에 DOM 트리로 표시됩니다.

+0

좋아, 어떻게 자바 자바 object.since 내가 그 클라이언트 인스턴스 JVM을 한 번 자바 객체를 인스턴스화에서 실행할 수 있도록 자바 객체로 deserialize하고 싶습니다 concured XML을 deserialize –

+0

여기에 설명하는 내용이 귀하의 질문과 다릅니다. – cdmckay

+0

JavaScript를 사용하여 객체를 deserialize해야하는 이유는 무엇입니까? Java-to-Java 연결을 사용하는 것이 어떻습니까? –

-1

Java 메소드를 자바 스크립트로 실행할 수 없습니다. 당신이 할 수있는 유일한 일은 Java 객체의 속성을 읽는 것입니다. 이것은 XML 파일에서 직렬화되는 유일한 정보입니다. 자바 스크립트로 XML을 읽는 것은 매우 easy입니다.

자바 객체를 직렬화하고 클라이언트로 보내고 Java 코드를 실행하려면 완전히 다른 아키텍처가 필요합니다. 처음에는 클라이언트에서 Java를 실행해야합니다. 그런 다음 RMI와 같은 방법을 사용해야합니다.

+0

은 내 요구 사항을 충족합니까? –

+0

네,하지만 여전히 다른 직렬화 기법이 필요하고 보안 문제를 다루어야합니다. RMI 서버와 통신 할 수 있으려면 애플릿에 서명해야합니다. – kgiannakakis

+0

이것은 지나치게 복잡해 보입니다. 그가 정말로 필요로하는 것은 Java 서버가 웹 서비스를 제공하게하고 AJAX를 사용하여 해당 웹 서비스를 호출해야합니다. – cdmckay

1

SOAP를 사용하여 JavaScript를 사용하여 클라이언트 측에서 Java 메소드를 호출 할 수 있습니다. 이 article은 WSDL을 지원하는 SOAP 클라이언트가 액세스 할 수있는 WSDL 웹 서비스를 만드는 방법을 설명합니다.

JavaScript에서 AJAX를 사용하여 Java WSDL 서비스를 호출 할 수 있습니다 (SOAP 및 WSDL을 구현하는 JS 라이브러리를 찾을 수있는 경우).

또는 PHP의 내장 SoapClient 라이브러리를 사용하여 PHP의 Java WSDL 서비스에 단순화 된 프런트 엔드를 작성할 수 있습니다. 몇 가지 간단한 GET 인수를 사용하고 JSON 또는 XML을 반환하십시오. 그런 다음 jQuery (또는 동등한 AJAX 지원 라이브러리)를 통해 AJAX를 사용하여 PHP 웹 서비스에 손쉽게 액세스 할 수 있습니다.

+0

+1 XStream은 JSON을 즉시 사용할 수 있도록 지원합니다. – Fortyrunner

1

애플릿을 만들고 자바에서 자바 스크립트를 호출하려는 경우 LiveConnect에서 JSObject 래퍼 클래스를 확인하십시오. 이렇게하면 애플릿 내부에서 자바 스크립트 기능을 실행할 수 있습니다 (중간에 정보 전달).

Executor exe = Executors.newSingleThreadExecutor(); 
final JSObject page = JSObject.getWindow(applet); 

if (page == null) { 
    /* Break here, no connection could be made */ 
} 

final String javascriptFunction = "yourJavaScriptFunction()"; 
executor.execute(new Runnable() { 
    public void run() { 
     page.eval(javascriptFunction); 
    } 
}); 

Flickr 용 IRIS applictation을 살펴보십시오.이 소스는 오픈 소스이며이 기술을 사용합니다. 벨기에 JUG Parleys는이 중 일부를 다루는 국제 대회에서 연설을했습니다. You can find it here.

관련 문제