Java-апплеты не работают с удаленной отладкой апплета

1

Я пытаюсь использовать удаленную отладку для Java-апплетов. Я использую Java 7 update 51, и когда я пытаюсь загрузить апплеты, это отключается в консоли java, а затем оно ударяется.

network: Connecting http://domain.com/useradmin3.gif with proxy=DIRECT
network: Connecting http://domain.com/ with proxy=DIRECT
preloader: Stop progressCheck thread

Я передал следующие параметры выполнения в Javacpl: "-Djava.compiler = NONE -Xnoagent -Xdebug -Xrunjdwp: transport = dt_socket, address = 8007, server = y, suspend = n"

Теги:
applet
remote-debugging

2 ответа

0
Лучший ответ

Я выяснил, каков этот вопрос. У меня есть страница, содержащая несколько апплетов. И я установил параметры Java для удаленной отладки. Всякий раз, когда я загружаю страницу, она загружает две JVM для страницы, которые я не знаю, почему. Итак, для первого JVM он использует порт no. для прослушивания. Но для второго JVM тот же номер порта. должен использоваться, поскольку параметры Java определены глобально. Таким образом, вторая JVM получает зависания, ожидая выхода порта.

Я придумал обходной путь для этой проблемы и дайте мне знать, если кому-то это понадобится.

0

Бисквит, возможно, вам не хватает некоторых флагов компилятора (например, "lines, vars, source"), чтобы разрешить удаленное отладки.

Например, вы используете Ant, вам нужно добавить эти строки в свой javac:

<!-- Javac lines, vars, source compiler flags -->
<javac srcdir="..." destdir="..." classpathref="..." debug="true" debuglevel="lines,vars,source" />

Затем в вашем скрипте выполнения вы можете добавить:

<!-- debug configurations: modify the port you want-->
<jvmarg value="-Xdebug"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4060"/>

С другой стороны, если вы используете Maven, то такие же флаги могут быть добавлены в:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.0.2</version>
      <configuration>
        <!-- Necessary in order for the debug levels to be considered-->
        <debug>true</debug>
        <debugLevel>lines,vars,source</debugLevel>
      </configuration>
    </plugin>
  </plugins>
</build>

В случае использования Jetty, как и раньше, вы должны иметь следующую переменную:

export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"

С другой стороны, что вы можете проверить, установите флаг suspend на "yes", это " suspend = y ". Это не приведет к запуску вашего приложения, если вы не подключите отладчик к вашему порту.

Здесь вы можете проверить конкретную информацию о jboss:

http://webdev.apl.jhu.edu/~jcs/ejava-javaee/coursedocs/605-784-site/docs/content/html/devenv-jboss-setup.html#enable-jboss-debug

И всегда проверяйте, как остановить брандмауэр. В случае iptables вы можете выполнить следующую команду:

service iptables stop

О, еще одна вещь, которую вы можете попробовать проверить, если ваш порт в настоящее время используется другим процессом:

In windows:
netstat -nab

Linux:
netstat -nap

Надеюсь помочь.

  • 0
    Спасибо за ваше время и усилия. Я попытался использовать suspend = y, я отключил брандмауэр и также проверил, используется ли порт, но я не помог. Я отключил jre 7u51 и установил jre 6u29, который не рекомендуется, но решил мою проблему. Я могу работать над отладкой сейчас, но все еще не уверен, в чем именно проблема.
  • 0
    это интересно. Вы можете создать вопрос об этом, просто чтобы знать, почему это было. Извините, я не могу вам помочь.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню