Подтвердить что ты не робот

Как запустить веб-образцы Java Card Connected Edition на Eclipse?

Я загрузил Java Card Connected Edition 3.0.2 с официального сайта Oracle и установил его. В JCDK есть несколько веб-образцов. В документации написано:

Все образцы должны запускаться из среды IDE NetBeans. Они не могут быть запущены из командной строки в этом выпуске набора для разработки.

Образцы правильно работают с IDE NetBeans. Я могу импортировать их и запускать на платформе Java Card.

Но я хочу использовать эти образцы в Eclipse IDE. В Eclipse как путь к SDK Java Card я показал домашний путь Java Card Connected. Затем было создано новое устройство и попыталось запустить его [CardHolderApp, например]. Но Eclipse дает:

ApduTool thread exited
User input thread exited
APDU|ApduTool [v3.0.2]
APDU|    Copyright (c) 2009 Sun Microsystems, Inc.
APDU|    All rights reserved.
APDU|    Use is subject to license terms.
APDU|Opening connection to localhost on port 9025.
APDU|Connected.
APDU|java.net.ConnectException: Connection refused: connect
ApduTool process finished with code: 1

.log:

!ENTRY org.eclipse.core.jobs 4 2 2015-09-08 01:39:17.142
!MESSAGE An internal error occurred during: "Launching CardHolderApp".
!STACK 0
java.lang.RuntimeException: Cannot start device. Please see the log.
    at com.oracle.javacard.jcdk.launch.runconfiguration.AppletRunConfigurationDelegate.launch(AppletRunConfigurationDelegate.java:79)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:885)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:739)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1039)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1256)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Можно ли запустить проект Java Card Connected Веб в Eclipse IDE?

UPDATE:

Устройство успешно запущено. Но проект не развернут. Он дает "неподдерживаемый String type constant" для каждого использования String. Пример кода:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    response.setContentType("text/html"); // unsupported String type constant
    PrintWriter out = response.getWriter();
    RequestDispatcher dispatcher = null;
    dispatcher = request.getRequestDispatcher("/WEB-INF/header.i");//unsupported String type constant
    response.sendRedirect(response.encodeRedirectURL("http://www.sun.com"));//unsupported String type constant
    dispatcher.include(request, response);
    dispatcher.include(request, response);
}

Classic Edition не поддерживал Strings. Но он должен работать на Connected Edition.

4b9b3361

Ответ 1

Забыть обо всем сложном программном обеспечении между ними. Просто глядя на сообщения об ошибках, похоже, что порт 9025 не открыт или доступен на вашем локальном хосте:

APDU|Opening connection to localhost on port 9025.
APDU|Connected.
APDU|java.net.ConnectException: Connection refused: connect
ApduTool process finished with code: 1

Текст [java.net.ConnectException: Connection reject: connect], каждый раз, когда я вижу "Соединение отказано", это означает, что java попытался создать сокет на порту (в этом случае 9025), и он не смог получить номер порта либо из-за блокировки (например, брандмауэра), либо недоступно (что-то еще использует порт 9025).

В окнах или * nix обычно можно использовать команду netstat, чтобы увидеть, какие порты используются.

hth, adym