Java PHP veri aktarma

10 Cevap java

Ben PHP kullanarak ayrıştırmak ve Java için ayrıştırılmış veri göndermek için gereken bir XML dosyası var, ne bunu gerçekleştirmek için bazı en iyi uygulamaları nelerdir?

10 Cevap

Bu SOAP gibi bir web hizmeti için bir vaka çalışmasıdır.

Veri boyutu oldukça büyük ve hızlı transferi gerekiyorsa, o zaman protobuf dikkate almak istiyorum (http://code.google.com/p/protobuf/). Bu SOAP bir karşılaştırılabilir, ancak ikili tamamen iletişim kurar.

Ben bunu yapmak için çalışıyoruz ne öncül ve ne sınırlamalar hakkında biraz daha fazla bilmek yardımcı olabilir sanırım.

Eğer sadece PHP tarafında kodlama ve zaten oluşturulan bir Java uygulaması için veri gönderiyor? Yoksa her iki taraf yapıyorsun? Protokollerin ne tür Java ile arayüz sizin için kullanılabilir?

/ / -> Temizlendikten sonra / /

Ben ILOG Motoru çok bilgi yok, ancak ben biraz ben başlamak istiyorum nerede bir fikir almak için API bir göz attım.

Açıkçası ben her şeyi sizin için kurulum nasıl bilmiyorum ama ILOG zaten yerleşik XML işleme için bir API vardır görünür?

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

Şahsen ben XML dosyasına gerekli değişiklikleri yapmak ve bu API kullanarak dikkat çekmek için Java programı için onu teslim ederim.

Üzgünüm, bu ile yanlış yöne giderse!

Yani istediğiniz:

xml ayrıştırma.

Bazı veri ayıklamak ve MySQL takın.

Analise gelen veri ve bazı JRules parametrelerini oluşturmak.

Sonra JRules çağırmak.

Değil mi?

Bildiğim kadarıyla JRules bir komut satırı API içermiyor halledebiliriz gibi - bu sadece bir Sistemi (...) çağrısı kullanılarak app tekme olabilir yaptıysam.

Benim en iyi tavsiye Java şeyi yapmak olacaktır!

JRules is running in Websphere so you have a Servlet engine running for sure. Java comes complete with all the APIs you need to parse XML, update a database and invoke JRules. Why go to the pain of invoking a Java class from php?

Alternativly! Ben JRules bir web hizmeti arayüzü var olduğunu fark. Somewhere web üzerinde bir php SOAP :: olduğu Müşteri arabirimi (opsiyonel ama çoğu php varsayılan 5 dağıtımlar olarak sağlanmalıdır), böylece JRules üzerinde WebService yapılandırmak xml şema almak ve php motoru içine kadar yük olabilir. Onun ardından relativly kolay phps SOAP kullanımı :: Client sınıfları Web hizmeti çağırmak için. Bkz http://th2.php.net/manual/en/book.soap.php

Yine de saf Java seçeneği tercih.

Eğer "ayrıştırmak" ile ne demek istiyorsunuz? , Doğrusu, ne PHP kodu yapıyor?

Birbirleriyle konuşurken iki dili almak için SOAP veya Xmlrpc veya tasarruf veya protobuf gibi bir şey kullanabilirsiniz, ama sadece PHP kodu fazla yük XML var ve sadece aracılığıyla bayt için-byte Java programı göndermek basit olabilir HTTP falan. Java kodu ardından kullanmakta olduğunuz kütüphaneye XML verilerini teslim kadar kolay olabilir ayrıştırma işi yapabilirim.

Ayrıca XML dosyasından veri okumak için PHP SimpleXML (PHP v5) kullanabilirsiniz

PHP / Java köprü uygulaması vardır: http://php-java-bridge.sourceforge.net/pjb/ benim önceki şirket bu yüzden herhangi bir konuda tam olarak söyleyemem, bir projede bir kez kullandım ve bildiğim kadarıyla o amele biliyorum, ama ben o projeye dahil değil sorunlar.

Bir seçenek, SOAP yoluyla ya da belki bir daha "hafif" alış biçimi sanırım senin en iyi bahis olurdu ya Webservice değilse.

Neden PHP kullanarak bu dosyayı ayrıştırmak gerekiyor? Söz konusu Java için bu kod üzerinde taşıma mı? PHP kodu ne çıkmıyor? Nasıl kolayca Java tarafından okunan (veya genel soru bu parçası mı?) Olabilir

Onu gördüğünüz gibi aşağıdaki seçenekleri vardır: PHP/Java bridge veya PHP scripting engine in Java, (sana ne de REST, SOAP) Java mantığı, bir web hizmeti yeniden yazın.

Ben bu alternatif-cekti önermek

a) Parse the XML and convert it into JSON (Java script object notation) in PHP. (Manipulating JSON objects are very easy, just like handling maps/arrays in PHP)
b) Do whatever manipulations you want to the JSON data.
c) Call a Java server side component (Servlet/Struts action etc., assuming your Java as a web component) and post the JSON data to the component.
d) Just read the request parameter (JSON data) and use a JSON library (sourceforge has a good JSON library for java) to parse the data into a Map/List (depending on what kind of data you have).

Aşağıdaki senaryolar uygulayın:

  1. Bir php dinlenme hizmet oluşturmak, örneğin (örneğin brwoser sayfayı açmayı deneyin) standart bir web isteği tarafından istendiğinde xml dosyasını dönecektir sayfası. Java uygulama daha sonra php kalan hizmetin (örneğin sayfa) bağlanmak ve xml çıktı alırsınız.

  2. Java uygulaması PHP uygulama TCP protokolünü kullanarak bağlanır ve Java uygulama XML dosyası gönderir hangi TCP sunucusunu başlatır.

  3. PHP uygulama bir veritabanı tablosundaki bir sütun xml dosyasını kaydeder, Java uygulama oradan okur.