java.lang.String не может быть приведен к java.io.InputStream - PullRequest
1 голос
/ 13 ноября 2010

Я пишу php-скрипт, который взаимодействует с SOAP-клиентом (который внутренне использует java).

Для одного из вызовов требуется передать закодированный в Base64 контент.

Я передаю это так:

(Edit 1)
$content=file_get_contents('fileX'); 
fileX is a binary file which has been uploaded via POST and saved successfully in /tmp.
It is ~600kb in binary form.

$args[]=array('name'=>'content', 'value'=>base64_encode($content), 'type'=>'Base64Binary');

Но я получаю сообщение об ошибке:

java.lang.String cannot be cast to java.io.InputStream


(Edit2)
The documentation of the third party application says exactly:
Parameter   Description                               Type
filename    The name of the presentation file         String
            including the file extension. 
content     The content of the presentation file      Base64Binary
            encoded in Base64 scheme. 

1 Ответ

0 голосов
/ 13 ноября 2010

Второй параметр в массиве имеет тип String из-за типа вывода base64_decode.Эта ошибка Java подразумевает, что она ожидает объект типа InputStream.

Вам может понадобиться использовать Zend PHP Java Bridge, как показано здесь:

https://fosswiki.liip.ch/display/~chregu/Convert+PHP+String+to+a+Java+InputStream

inЧтобы преобразовать эту строку в Java InputStream.

Загрузите Zend Server здесь:

http://www.zend.com/en/products/server/downloads

или альтернативный PHP Java Bridge здесь:

http://php -java-bridge.sourceforge.net / PJB / installation.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...