Строковые данные, передаваемые в Java-апплет с помощью javascript, равны нулю, когда в Java-апплете - PullRequest
1 голос
/ 21 июля 2009

Этот вопрос может показаться знакомым, но я обнаружил несколько более подходящую информацию и попробовал некоторые другие вещи (которые подробно описаны ниже), чтобы избежать путаницы, я создал другой вопрос.

Вот код JavaScript (на странице aspx):

function CallApplet(clientRef, system, branch, category, pdfXML)
{        
    AppletReturnValue = document.DocApplet.WriteDocument(clientRef, apmBROOMS, branch, category, pdfXML);
    //do something with the return value here
}

pdfXML получен из pdfData, который является скрытым полем на странице, содержащей XML, содержащий данные в формате base64 в формате pdf , которые передаются в Java-апплет. Все остальные значения, передаваемые методу WriteDocument апплета, имеют допустимые значения в пределах диапазона.

XML похож на это

<Documents>
   <FileName>AFileName</FileName>   
   <PDF>JVBERiDAzOTY1NzMwIDAwMDAwIG4NCjAwMDM5NjU4NDcgMDAwMDAgbg0KMDAwMzk2NTk2</PDF>
</Documents>

(содержание элемента PDF намного больше, чем показано выше, я обрезал данные из-за нехватки места; данные PDF имеют размер около 4 МБ)

Подпись метода Java:

public String WriteDocument(String clientPolicyReference,
                                       int systemType,
                                       int branch,
                                       String category,
                                       String PDFData) throws Exception

Что происходит, так это то, что каким-то образом данные строки xml теряются, и к тому времени, когда кто-то попадает в Java, значение параметра PDFData равно нулю. Я отладил в JS, и у параметра pdfXML метода js CallApplet определенно есть содержимое.

Я также пытался добавить тэг param в тэг апплета и установить его значение перед вызовом апплета и использовал GetParameter () из апплета. В результате получается пустая строка, а не ноль.

Эта проблема возникает не на каждой машине. Например, в нашем отделе контроля качества этого не происходит, но поскольку это проблема клиента, один из наших клиентов, вероятно, это увидит.

У меня совершенно нет идей, поэтому любая помощь будет оценена (с очевидным условием, что, к сожалению, мне нужно, чтобы это работало, а не перепроектировало и устаревшие системы, с которыми связывается апплет, чтобы избежать использования апплета. )

1 Ответ

1 голос
/ 23 июля 2009

Сортировал проблему.

Как? Я отключил обновление 12 для JRE 1.6 и вставил обновление 7 (именно эту версию мы рекомендуем тем, кто использует наш веб-сайт) на моей машине.

Почему обновление 12 перестало работать, я не знаю. Почему обновление 7 стабильно, я не знаю. [Вздыхать]

Это такие вещи, которые радуют меня тем, что я работаю, в основном, с фреймворком с длительным временем между релизами, таким как .net.

...