2015-05-08 5 views
0

Резюме: Как вы запускаете дублирующие приложения JavaWS (они исходят из одного исходного кода, но используют отдельные данные) на одном компьютере?Запуск дубликатов приложений JavaWS

У меня есть старая версия приложения, работающего на клиентском сайте. Я выполнил обновление приложения и развернул его (используя разные базы данных, войны, серверы и т. Д.) И хотел бы, чтобы пользователи загружали и запускали оба приложения одновременно на своих компьютерах. Поскольку приложения существенно независимы друг от друга, не должно быть проблем с перекрывающимися данными. Однако файлы .JNLP загружают новое приложение и перезаписывают старый - и наоборот. Мы хотим, чтобы оба работали одновременно, чтобы производство не прекращалось, и они могут проверить функциональность улучшений до, переключая новейшее приложение на их производство.

Я изменил имя нового приложения и имя начального меню в файле JNLP, но они все еще перезаписывают друг друга. Я полагаю, что в этом вопросе есть вопрос: Как/где Java определяет, что приложение, загружаемое/установленное через веб-начало, уже существует? Я предполагаю, что это от имени основного класса.

Благодаря

MIS.JNLP для справки:

<?xml version="1.0" encoding="utf-8"?> 
 
<!-- JNLP File for Foo Registration Application --> 
 
<jnlp 
 
    spec="1.7+" 
 
    codebase="http://foo:8080/mis" 
 
    href="mis.jnlp"> 
 
    <information> 
 
    <title>MIS TEST</title> <!-- Original: 'MIS' --> 
 
    <vendor>Foo Inc.</vendor> 
 
    <description>Bar MIS System</description> 
 
    <shortcut online="false"> 
 
     <desktop/> 
 
     <menu submenu="FooBar MIS TEST"/> <!--Original: 'FooBar MIS' --> 
 
    </shortcut> 
 
    </information> 
 
    <security> 
 
     <all-permissions/> 
 
    </security> 
 
    <resources> 
 
    <j2se version="1.7+" java-vm-args="-client"/> 
 
    ... 
 
    </resources> 
 
    <application-desc main-class="FooMainApp"/> 
 
</jnlp>

Solution (благодаря Вику в комментарии ниже):

Я должен был измените мою сборку так, чтобы .war с другим именем было создано. Кроме того, было изменено имя JNLP, а также ссылка внутри файла .html, указывающая на jnlp. Комбинация этих вещей позволяла одновременным запускам повторяющихся приложений.

+1

Какой URL-адрес вы используете? По документации Oracle «Каждый JAR-файл, который загружает JNLP-клиент (например, Java Web Start), уникально идентифицирован с URL-адресом. Если два JNLP-файла используют один и тот же URL-адрес, то ресурс будет загружен только один раз и совместно используется. к реализациям кеширования, используемым веб-браузерами " – Vic

+0

Old: http: // foo: 8080/mis New: http: // foobar: 8080/mis .. Я попробую изменить имена файлов .war и посмотреть, есть ли у них эффект. Спасибо за вход Vic. – ballBreaker

+0

@Vic, если вы заботитесь, вы можете сделать то, что ответили, и я приму это. Это была просто информация, в которой я нуждался. Еще раз спасибо. – ballBreaker

ответ

1

Документация Oracle «Каждый JAR-файл, который загружает JNLP-клиент (например, Java Web Start), уникально идентифицирован с URL-адресом. Если два JNLP-файла используют один и тот же URL-адрес, то ресурс будет загружен только один раз и совместно . Это похоже на реализацию кеширования, используемую веб-браузерами. «