2009-10-20 6 views
3

PHP를 사용하여 구문 분석하고 파싱 된 데이터를 Java로 보내야하는 XML 파일이 있습니다.이를 수행하는 데 유용한 모범 사례는 무엇입니까?PHP에서 Java로 데이터 전송

+0

매우 제한된 옵션이 있습니까? – Rachel

+0

PHP를 사용하여 결정 규칙을 포함하는 들어오는 XML을 구문 분석하고 Java에있는 JRules API를 사용하여이 결정 규칙을 ILOG JRules Engine에 전달해야합니다.이 문제가 명확 해지기를 바랍니다. – Rachel

+2

Java 애플리케이션이 XML이있는 동일한 시스템에 있습니까? Java 응용 프로그램에서 XML을 직접 읽을 수 있습니까? – Adrian

답변

4

SOAP과 같은 웹 서비스의 사례 연구입니다.

+0

SOAP은 웹 서비스가 아닙니다. – moxn

+5

"원래 SOAP (Simple Object Access Protocol)로 정의 된 SOAP는 컴퓨터 네트워크에서 ** 웹 서비스 ** 구현시 구조화 된 정보를 교환하기위한 프로토콜 사양입니다." 그것은 사양입니다 ... 나는 모든 사람들이 내가 준 링크에 첫 번째 문장으로 라인을 그릴 수 있다고 생각했습니다. –

+1

그는 맞았습니다. 웹 서비스가 아닙니다. 프로토콜 사양입니다. 웹 서비스에서 사용하도록되어 있지만 웹 서비스는 아닙니다. – defines

2

데이터 크기가 매우 크고 빠른 전송이 필요한 경우 protobuf (http://code.google.com/p/protobuf/)를 고려하고 싶습니다. 그것은 SOAP에 필적하지만 바이너리로 전적으로 통신합니다.

2

나는 당신이하려는 일과 당신의 한계가 무엇인지에 대한 전제에 대해 좀 더 알게 될 것 같아.

PHP 쪽만 코딩하고 이미 생성 된 Java 응용 프로그램으로 데이터를 보내고 있습니까? 아니면 양쪽 다하고 있니? Java와 인터페이스하기 위해 사용할 수있는 프로토콜은 무엇입니까?

// -> 후 나는 ILOG 엔진의 많은 지식이없는

그러나 나는 종류의 내가 시작할 것이라고 곳의 아이디어를 얻을 수있는 API에서 살펴 보았다 // 해명.

분명히 모든 것이 어떻게 설정되어 있는지 모르겠지만 ILOG에는 이미 내장 된 XML을 처리하기위한 API가 있습니다.

http://ilog.cn/products/jrules/documentation/jrules67/api/html/index.html

개인적으로 나는 XML 파일에 필요한 수정을하고 API를 사용하여 돌봐 Java 프로그램에 넘겨 것입니다.

죄송합니다. 잘못된 방향으로 이동하면 죄송합니다.

+0

BrandonCS 노력에 감사드립니다. – Rachel

+0

규칙을 구문 분석하기 위해 Java API를 사용하지 않는 이유는 무엇입니까? – elhoim

0

또한 XML 파일에서 데이터를 읽을 PHP SimpleXML (PHP의 V5)를 사용할 수 있습니다

0

는 PHP/자바 다리를 구현 있습니다 : http://php-java-bridge.sourceforge.net/pjb/ 내 이전 회사가 프로젝트에서 한 번 사용하고 내가 아는 한 그것은 효과가 있었지만 그 프로젝트에 관여하지 않았으므로 어떠한 문제에 대해서도 정확히 말할 수 없습니다.

이것이 옵션이 아닌 경우 SOAP을 통한 웹 서비스 또는 "경량"교환 형식을 사용하는 것이 가장 좋습니다.

0

왜이 파일을 PHP로 구문 분석해야합니까? 이 코드를 Java에서이 질문으로 포팅하고 있습니까? PHP 코드는 무엇을 반환합니까?

내가보기에 다음과 같은 옵션이 있습니다 : Java, 웹 서비스 (SOAP, REST는 무엇을 가지고 있습니까?)에서 논리를 다시 작성하십시오. , PHP/Java bridge 또는 PHP scripting engine in Java입니다.

+0

당신이 맞습니다, 자바가 얼마나 쉽게 준비 할 수 있는지가 전반적인 질문입니다. PHP를 사용하여 XML을 구문 분석해야하며 데이터를 Java로 파싱해야합니다. – Rachel

+0

왜 PHP에서 데이터를/구문 분석해야합니까? 데이터가 PHP 프로세스에서 어떻게 나오는지 또는 아직 결정되지 않았습니까? PHP 프로세스가 데이터를 "파싱"하는 것 이외에 다른 작업을 수행하고 있지 않다면? 그리고이 경우 파싱의 의미는 무엇입니까? –

+0

파싱 데이터가 mysql 데이터베이스로 이동하고 의사 결정 테이블이 JRules Engine으로 이동해야하는 경우 XML 파일을 파싱하는 간단한 경우입니다. perl 또는 PHP를 사용할 수 있습니다. PHP 프로세스에서 나오는 데이터는 앞서 언급 한 바와 같이 데이터 테이블과 의사 결정 테이블이어야하며 PHP는 mysql 데이터베이스에 데이터를 저장하고 결정 규칙을 JRules 엔진에 전달해야합니다. 구문 분석 = "XML 파일 구문 분석"의 의미는 무엇입니까 – Rachel

1

"구문 분석"이란 무엇을 의미합니까? 정확하게, PHP 코드는 무엇을하고 있습니까?

SOAP 또는 XMLRPC 또는 Thrift 또는 Protobuf와 같은 것을 사용하여 두 언어를 서로 이야기 할 수는 있지만 PHP 코드가 XML을로드하고 단순히 바이트 단위로 보내도록하는 것이 더 간단 할 수 있습니다. HTTP 또는 뭔가를 통해 자바 프로그램. Java 코드는 파싱 작업을 수행 할 수 있으며 사용중인 라이브러리로 XML 데이터를 전달하는 것만 큼 쉽습니다.

+0

PHP 코드가 XML 파일을 가져 와서 구문 분석 중입니다. 파싱한다는 것은 XML 구문 분석을 의미하며이 구문 분석 된 데이터를 Java에 전달해야합니다. – Rachel

0

내가) XML을 구문 분석 PHP에서 JSON (자바 스크립트 객체 표기법)로 변환이 alternative-

을 제안합니다. (PHP에서지도/배열을 처리하는 것처럼 JSON 객체를 조작하는 것은 매우 쉽습니다.)
b) JSON 데이터에 원하는대로 조작하십시오.
c) Java 서버 측 구성 요소 (Java를 웹 구성 요소로 가정하고 Servlet/Struts 액션 등)를 호출하고 JSON 데이터를 구성 요소에 게시합니다.
d) 요청 매개 변수 (JSON 데이터)를 읽고 JSON 라이브러리 (sourceforge에는 Java 용 JSON 라이브러리가 좋다)를 사용하여 데이터를 Map/List로 구문 분석한다 (데이터의 종류에 따라 다름).

+0

JSON XML 어떤 차이가 있습니까? PHP와 Java 모두 xml을 매우 잘 처리하여 왜 프로토콜 변환을 귀찮게합니까? –

+0

JSON은 구조화 된 데이터를보다 가볍게 표현하고 일반적으로 사용하는 데이터 구조에 더 직관적이며 직관적이라고 생각합니다. 또한 XML은 JSON보다 효율적으로 구문 분석 될 수 있도록 더 많은 노력이 필요하다고 생각합니다. – Keshav

2

다음과 같이하십시오.

xml을 구문 분석하십시오.

일부 데이터를 추출하여 MySql에 삽입하십시오.

들어오는 데이터를 분석하고 일부 JRules 매개 변수를 구성하십시오.

그런 다음 Jrules를 호출하십시오.

오른쪽?

JRules에는 명령 행 API가 없습니다. 시스템 (...) 호출을 사용하여 앱을 시작할 수 있습니다.

Java에서 모든 것을 수행하는 것이 가장 좋습니다.

JRules는 Websphere에서 실행되므로 Servlet 엔진을 확실히 실행해야합니다. Java는 XML 구문 분석, 데이터베이스 업데이트 및 JRules 호출에 필요한 모든 API를 제공합니다. 왜 PHP에서 자바 클래스를 호출하는 고통에 가야합니까?

대체! JRules에 웹 서비스 인터페이스가 있다는 것을 알았습니다. 웹의 어딘가에 PHP SOAP :: Client 인터페이스 (선택 사항이지만 대부분의 PHP 5 디스트리뷰션에서 기본으로 제공되어야 함)가 있으므로 JRules에서 WebService를 구성하고 XML 스키마를 가져 와서 PHP 엔진에로드 할 수 있습니다. 따라서 웹 서비스를 호출하는 phps SOAP :: Client 클래스를 사용하는 것이 상대적으로 쉽습니다. http://th2.php.net/manual/en/book.soap.php

아직도 순수한 자바 옵션을 선호합니다.

+0

예. 당신 말이 맞아요. – Rachel

0

다음 시나리오는 적용

  1. 는, 예를 들어, PHP는 나머지 서비스 만들기 표준 웹 요청에 의해 요청 된 경우 XML 파일을 반환하는 페이지입니다 (예 : 브루저에서 페이지 열기). 그런 다음 Java 응용 프로그램이 PHP rest service (예 : 페이지)에 연결하고 xml 출력을 가져옵니다.

  2. Java 응용 프로그램은 PHP 응용 프로그램이 TCP 프로토콜을 사용하여 연결하는 TCP 서버를 시작하고 XML 파일을 Java 응용 프로그램으로 보냅니다.

  3. PHP 응용 프로그램은 xml 파일을 데이터베이스 테이블의 열에 저장하고 Java 응용 프로그램은 xml 파일을 데이터베이스 테이블의 열에 저장합니다.