2016-11-13 1 views
0

Я хочу поделиться интерфейсом между двумя апплетами как клиентом и сервером с различным пакетом AID. Я видел ссылку: [0x6f00 error casting Javacard Shareable InterfaceИспользование javacard Совместимый класс для обмена интерфейсом между двумя апплетами как клиентом и сервером с различным пакетом?

В приведенной выше ссылке сказано: как клиент, так и сервер должны быть в одном пакете. У меня есть вопрос сейчас. возможно ли, что клиент использует серверные функции, если они имеют различную AID пакета? спасибо.

ответ

4

Клиент и сервер не должны быть в одном пакете! Они оба должны зависеть от того же пакета, который содержит общий интерфейс.

В связанном вопросе возникла проблема с интерфейсами: OP объявил два интерфейса с тем же именем в двух отдельных пакетах. Вот почему кастинг провалился, и статус 6F00 был брошен.


Как использовать Shareable интерфейс:

1.Declare ваш общий интерфейс public на сервере стороне пакета:

package com.test.mypackage.a; 
public interface SharedObject extends Shareable { 
     public void foo(); 
} 

2.Use интерфейса в коде клиента:

package com.test.mypackage.b; 
import com.test.mypackage.a.SharedObject; 

... 
SharedObject obj = (SharedObject) JCSystem.getAppletShareableInterfaceObject(svrAid, (byte)0); 
  1. Используйте свой серверный апплет as a library при создании клиентского апплета.
  2. Загрузите свой серверный апплет cap файл первым.
  3. Затем загрузите клиентский апплет cap.
+1

Цитируется по API JC Документация: ** совместно используемый интерфейс: ** _an интерфейс, который определяет набор общих методов. Эти методы интерфейса могут вызывать из апплета в одном контексте, когда объект, реализующий их , принадлежит апплетам в другом контексте ._ Контекст как бы синоним пакетов. – Abraham

+0

Спасибо всем за ваши ответы. я извиняюсь за вас, потому что не понимаю вашего ответа. У меня простой вопрос? У меня есть два отдельных апплета, и я хочу использовать некоторые функции в первом апплете для другого. эти апплеты совершенно разные. это означает, что у них есть разные AID пакета и AID апплета. Могу ли я реализовать его с помощью совместного интерфейса? –

+0

Спасибо Аврааму и воете снова. что это значит: «Они оба должны зависеть от того же пакета, который содержит общий интерфейс». можете ли вы объяснить об этом больше? пакет означает контекст? как я должен установить два разных апплета на карту, которые зависят от того же пакета? –

Смежные вопросы