Berkeley DB JE Browser Eclipse Plugin

I just started an eclipse plugin project to inspect Berkeley DB JE instances. It is my first eclipse plugin, so be kind. I didn't think eclipse was going to be so hard to work with.
http://code.google.com/p/bdb-browser/
At the present time, there is zero polish and it has very limited capabilities but I wanted to put the word out. Basically, it just lets you pick a db environment directory and it lists all the databases in there. You can drill into the tree until you reach an index. Double click the index and a view should open with the index's contents. The index's entries can be traversed as a tree of objects. All the declared fields and values are shown.
Please excuse the following:
- It only works DPL based Entity Stores
- There are some eclipse plugin example stuff laying around
- Absolutely no labels
It is compatible with eclipse 3.3 and can be installed via the update site (http://bdb-browser.googlecode.com/svn/trunk/eclipse/update/):
cheers,
andres

Hi,dr3s:
Thanks for your plugin project in Eclipse. It's a great job.
I installed your plugin in Eclipse. There appeared a "Sample Menu" in the menu bar. Then I pressed it, but it doesn't work. Instead, there is an error message which says that this operation is not available.
Then I opened your plugin.xml in the bdb-browser.xml, found that this action calls a class named OpenEnvironmentAction, but under the directory "org\mindhaus\bdb\browser\ui\actions", there is no such class. I'm wondering whether this is the reason why it doesn't work.
Can you give us more information about how it works and whether it needs more configuration? Thanks!
Regards!
Tao
Message was edited by:
Linda Lee, to add a bit more detail to the error message.

Similar Messages

  • Eclipse Plugins for Servlets and JSP.

    Hi Guys,
    Can any one suggest where i can get the eclipse plugins for Servlets and JSP. May i am wrong posting this question in this forum. I already browsed thru all the forum to get the info but in vain. so any help will be appreciated.
    Thank You,
    cheers,
    thrinath.j

    [url http://www.eclipse.org/webtools/]http://www.eclipse.org/webtools/
    Regards

  • Switching the language of the "Crystal Reports for Eclipse" plugin

    Good day everyone,
    I would like to ask about configuring the language of the "Crystal Reports for Eclipse" plugin:
    - I have "Crystal Reports for Eclipse" version: 2.0.7.r1040
    - I have installed the language packs 1 and 2
    - Currently, the Crystal Reports perspective and the associated views are displayed in German.
    - I would like to switch these views back to English.
    Questions:
    1. How can I switch the language?
    2. Will this switching of the language have any known side effect on the existing reports, because some of the reports in my current project are displayed in German?
    Thank you in advance for your support.
    Best regards,
    Samar

    Hello everyone,
    I have found a solution for this question that I would like to share with you.
    - Browse the Control Panel
    - Open the Regional and Language Options
    - In the Regional Options tab under the Standards and formats group, select the Locale that you prefer.
    - *Restart Eclipse* and the Crystal Reports plugin would read the changed setting and display the Crystal Reports perspectives and views in the language of the selected Locale.
    Best regards,
    Samar
    Edited by: Samar Hossam on Jun 30, 2011 6:56 PM

  • Developing SOAP based Webservice using Axis 2 Eclipse plugin

    Hi,
    I want to develop a SOAP based Webservice which connects to the PostgreSQL DB , by fetching the data for the employeeId entered and display the results in the browser. I'm using using JDK 1.6, Tomcat 6.0, Axis 2.0 , with Axis 2 Eclipse Plugin. Please send me a sample code of how to build it, i am able find some examples on the internet, but none of them are related to connecting to the DB and fetching the data. It will be great if you guys can provide the sample application which does have the same functionality as mine. Please do respond as this is urgent. Thanks in advance..
    Thanks,
    Rithu

    Thanks Adhir Mehtaji, This is what i have come up with, developing a webservices based on SAAJ and deploying that in Tomcat server, here is the Webservice and the other related files:-
    public class EmployeeService {
         * This method returns the Employee Name
         * @param empId String
         public void getEmployeeName(SOAPEnvelope req, SOAPEnvelope resp) throws javax.xml.soap.SOAPException {
              System.out.println("Inside the getEmployeeName in Employee Service");
              IEmployeeDAO employeeDAO= null;
              employeeDAO = new EmployeeDAOImpl();
              SOAPBody body = resp.getBody();
              String empId = null;
              NodeList empIdNodeList = req.getBody().getElementsByTagName("empId");
              for( int i=0; i < empIdNodeList.getLength(); i++ ) {
                   Element empIdElementElement = (Element) empIdNodeList.item(i);
                   Node empIdNode = empIdElementElement.getChildNodes().item(0);
                   empId = empIdNode.getNodeValue();
                   System.out.println("the empId in the employee service is:::"+empId);
              addNode(body,"empName",employeeDAO.getEmployeeName(empId));
              //addNode(body,"segmentName1",custSegmentDAO.getSegmentName(ZipCode));
         private static void addNode(SOAPBody body,String nodeName,String nodeValue) throws SOAPException{
              body.addChildElement(nodeName).addTextNode(nodeValue);
         This Service is exposed as a Webservice which connects to the DAO and get the response for the EmpId.
         This is the client file:-
         public class GetEmployeeNameClient {
              public static void main(String[] args) throws Exception {
                   // Invoking the Webservice endpoint which is hosted (deployed) in Tomcat by passing the SOAP Message request
                   // Get the SOAP Message response , which contains the employee name for the empId 100
                   // Parse the SOAP Message response to get the employee name (response from the WS)
                   String[] nodeNames = { "empId" };
                   String[] nodeValues = { "100" };
                   SOAPMessage message = GetEmployeeNameClient.getMessageFactory(
                             "getEmployeeName", nodeNames, nodeValues);
                   SOAPConnection conn = SOAPConnectionFactory.newInstance()
                             .createConnection();
                   SOAPMessage response = conn.call(message,
                             "http://localhost:8080/axis/services/EmployeeService");
                   // If the response is not null then everything is fine with the WS.
                   System.out.println("the response is what???"+response);
                   System.out.println("\n Soap response:\n");
                   System.out.println("\nXML response\n");
                   // Create transformer
                   TransformerFactory tff = TransformerFactory.newInstance();
                   Transformer tf = tff.newTransformer();
                   // Get reply content
                   Source sc = response.getSOAPPart().getContent();
                   // Set output transformation
                   StreamResult result = new StreamResult(System.out);
                   tf.transform(sc, result);
                   System.out.println();
                   // For these to work we need to connect to the DB - jdbc:oracle:thin:@ora-b2cd:6473:b2cd to get the segment name
                   SOAPBody soapBody = response.getSOAPBody();
                   System.out.println("the soapBody is what???"+soapBody);
                   NodeList empNameNodeList = soapBody.getElementsByTagName("empName");
                   System.out.println("the empNameNodeList.getLength is::"+empNameNodeList.getLength());
                   for (int i = 0; i < empNameNodeList.getLength(); i++) {
                        System.out.println("inside the loop");
                        Element empNameElement = (Element) empNameNodeList.item(i);
                        System.out.println("the empNameElement is what???"+empNameElement);
                        Node empNameNode = empNameElement.getChildNodes().item(0);
                        System.out.println("the empNameNode is what???"+empNameNode);
                        System.out.println("Employee Name For empId is ...... "
                                  + empNameNode.getNodeValue());
              // Construct the SOAP Message request by passing the empId 100(should come from UI)
              private static SOAPMessage getMessageFactory(String methodName,
                        String[] nodeNames, String[] nodeValues) throws SOAPException {
                   SOAPMessage message = null;
                   try {
                        System.out.println("Inside the getMessageFactory");
                        MessageFactory messageFactory = MessageFactory.newInstance();
                        message = messageFactory.createMessage();
                        SOAPPart soapPart = message.getSOAPPart();
                        SOAPEnvelope envelope = soapPart.getEnvelope();
                        SOAPBody body = envelope.getBody();
                        SOAPElement bodyElement = body.addChildElement(envelope
                                  .createName(methodName));
                        for (int index = 0; index < nodeNames.length; index++) {
                             bodyElement.addChildElement(nodeNames[index]).addTextNode(
                                       nodeValues[index]);
                        message.saveChanges();
                        // View input
                        System.out.println("\n Soap request:\n");
                        message.writeTo(System.out);
                        System.out.println();
                   } catch (Exception e) {
                        e.printStackTrace();
                   return message;
         This client will send a SOAPMessage with EmpId (100) as a request and get the response from the Webservice as SOAPMessage , which
         contains the empname for the respective empid which is passed.
    I tested this service in the browser, it is up and running through the URL : http://localhost:8080/axis/services
    But when i try to access the webservice to get the response from my client program, i am getting the following SOAP Fault string:-
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body><soapenv:Fault>
    <faultcode>
    soapenv:Server.userException
    </faultcode>
    <faultstring>
    org.xml.sax.SAXNotRecognizedException: Feature: http://xml.org/sax/properties/lexical-handler
    </faultstring>
    <detail>
    <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">
    user-15bbc0db6e
    </ns1:hostname>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    My client path contains :-
    axis.jar;
    jaxrpc.jar;
    saaj.jar;
    commons-logging.jar;
    commons-discovery.jar;
    wsdlj4.jar;
    axis-ant.jar;
    log4j-1.2.4.jar
    xerces.jar
    activation.jar
    mail.jar
    Similary the in the d:/tomcat/webapps/axis/WEB-INF/lib,contains the same as that in client path.
    I am using Tomcat 6.0 , JDK 1.6, I have googled and found that the expection is due to "Xerces.jar" not in Tomcat/webapps/axis/WEB-INF/lib.
    I have copied xerces.jar in the said path, still the error persists. Please do provide a solution to this. Where i have gone wrong.
    I have one more query, If i have to rest a "list" as a response from the server (webservice), how i can add the list into the SOAPMessage? Whether i need to parse it and add the values one by one in the SOAPMessage? like
    <empname> xxxx</empname> <empage>25</empage>
    <empname> yyyy</empname> <empage>26</empage>
    Please answer these queries.
    Thanks,
    Rithu

  • BPEL Installation Issues and Eclipse Plugin Issue

    I'm trying to evaluate BPEL and encountered the following issues:
    (1) Installation of patch 4343748:
    MISSING_COMPONENT : oracle.j2ee, 10.1.2.0.0
    This Oracle Home does not have components/versions required by the patch.
    ERROR: OPatch failed during pre-reqs check.
    OPatch returns with error code = 150
    The other 2 patches installed fine.
    Is there a required order for installing the patches. The information that I found is a bit spotty on that.
    (2) The Eclipse Plugin also doesn't work properly. The following stack trace is reported back, when trying to open a .bpel file:
    java.lang.NullPointerException
         at bpelz.browser.OleWebBrowser.registerAsDropTarget(OleWebBrowser.java:345)
         at bpelz.browser.OleBrowserView.createBrowserControl(OleBrowserView.java:168)
         at bpelz.browser.OleBrowserView.createPartControl(OleBrowserView.java:75)
         at bpelz.views.SimpleBrowserView.createPartControl(SimpleBrowserView.java:55)
         at bpelz.views.PaletteView.createPartControl(PaletteView.java:64)
         at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:305)
         at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:180)
         at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552)
         at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:283)
         at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:512)
         at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:126)
         at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:268)
         at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
         at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:391)
         at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1102)
         at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1051)
         at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1256)
         at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:576)
         at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:528)
         at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:485)
         at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:230)
         at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:813)
         at org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:2928)
         at org.eclipse.ui.internal.WorkbenchPage.busySetPerspective(WorkbenchPage.java:902)
         at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:887)
         at org.eclipse.ui.internal.WorkbenchPage$12.run(WorkbenchPage.java:3051)
         at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69)
         at org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:3049)
         at bpelz.wizards.BPELProjectCreationOperation.switchToBPELPerspective(BPELProjectCreationOperation.java:204)
         at bpelz.wizards.BPELProjectCreationOperation.run(BPELProjectCreationOperation.java:144)
         at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:346)
         at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:291)
         at org.eclipse.jface.wizard.WizardDialog.run(WizardDialog.java:830)
         at bpelz.wizards.BPELProcessWizard.performFinish(BPELProcessWizard.java:207)
         at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:676)
         at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:349)
         at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:556)
         at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
         at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
         at org.eclipse.jface.window.Window.runEventLoop(Window.java:809)
         at org.eclipse.jface.window.Window.open(Window.java:787)
         at org.eclipse.ui.actions.NewProjectAction.run(NewProjectAction.java:114)
         at org.eclipse.jface.action.Action.runWithEvent(Action.java:996)
         at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:538)
         at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
         at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:400)
         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
         at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)
         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)
         at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
         at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
         at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
         at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
         at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
         at org.eclipse.core.launcher.Main.run(Main.java:973)
         at org.eclipse.core.launcher.Main.main(Main.java:948)
    Any advice on how to proceed is much appreciated.
    Andreas

    I'm still hoping to find an answer on why the Eclipse BPEL Designer does not work for me. I can generate a BPEL project but the visual BPEL Editor will just not open up. Any clues on what I should be looking at would be very appreciated.
    Here is the exact Eclipse version that I'm using:
    Version: 3.1.0
    Build id: I20050627-1435
    And another stack trace that is seen in the Eclipse error log:
    org.eclipse.jface.util.Assert$AssertionFailedException: Assertion failed:
    at org.eclipse.jface.util.Assert.isTrue(Assert.java:180)
    at org.eclipse.jface.util.Assert.isTrue(Assert.java:165)
    at org.eclipse.ui.part.MultiPageEditorPart.setActivePage(MultiPageEditorPart.java:579)
    at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:244)
    at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:585)
    at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:365)
    at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:552)
    at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:258)
    at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1216)
    at org.eclipse.ui.internal.EditorManager$5.run(EditorManager.java:944)
    at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
    at org.eclipse.core.runtime.Platform.run(Platform.java:783)
    at org.eclipse.ui.internal.EditorManager.restoreState(EditorManager.java:939)
    at org.eclipse.ui.internal.WorkbenchPage.restoreState(WorkbenchPage.java:2535)
    at org.eclipse.ui.internal.WorkbenchWindow.restoreState(WorkbenchWindow.java:1819)
    at org.eclipse.ui.internal.Workbench.doRestoreState(Workbench.java:2566)
    at org.eclipse.ui.internal.Workbench.access$14(Workbench.java:2515)
    at org.eclipse.ui.internal.Workbench$19.run(Workbench.java:1514)
    at org.eclipse.ui.internal.Workbench$16.run(Workbench.java:1263)
    at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:346)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:291)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:447)
    at org.eclipse.ui.internal.Workbench.runStartupWithProgress(Workbench.java:1258)
    at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1512)
    at org.eclipse.ui.internal.Workbench.access$12(Workbench.java:1491)
    at org.eclipse.ui.internal.Workbench$17.run(Workbench.java:1374)
    at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1044)
    at org.eclipse.core.runtime.Platform.run(Platform.java:783)
    at org.eclipse.ui.internal.Workbench.restoreState(Workbench.java:1318)
    at org.eclipse.ui.internal.WorkbenchConfigurer.restoreState(WorkbenchConfigurer.java:183)
    at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:700)
    at org.eclipse.ui.internal.Workbench.init(Workbench.java:1034)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1636)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
    at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
    at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
    at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
    at org.eclipse.core.launcher.Main.run(Main.java:973)
    at org.eclipse.core.launcher.Main.main(Main.java:948)
    Thanks,
    Andreas

  • [ANN] FlexPMD 1.0 - FlexCPD 1.0 - FlexMetrics - FlexPMD Eclipse plugin has been released

    Finally, we got there...
    FlexPMD 1.0 has been released a couple of minutes ago.
    Here is the release note
    The big highlight of that release is:
    - Eclipse plugin
    - FlexMetrics
    - FlexCPD improved
    I hope you will like, and thanks to Xavi Beumala for developping the Eclipse plugin.
    Xavier

    Fantastic. Makes working on the errors and warnings so much easier!
    One minor issue - it would be nice to be able to select multiple projects and run CPD on them all at once:
    https://bugs.adobe.com/jira/browse/FLEXPMD-118
    I assume that CPD only runs on the currently selected fodler so to really check for duplicate code you'd have to run it across all projects at once - am I correct?
    Thanks for the great work.

  • Oracle OSB - Tutorial for development using Eclipse Plugin

    Hi,
    1. I need a tutorial to develop a simple application using file adapter. For example it was very easier in Oracle ESB 10.3 version where I can drag and drop adapters and configure. What should I do if I have to create similar adapters in OSB. Can you provide documentation. For Oracle ESB(old version) there was ESB Quick Start guide and it was very useful. Do we have some thing similar for OSB?
    2. Most of the tutorials that are in Oracle website points to using JDeveloper. When I download the JDeveloper I no longer get those option. When I browsed I found that we should use Eclipse Plugin for OSB development. Is it true.
    Thanks for your help.
    Thanks,
    Uma

    Hi Uma,
    You may find OSB samples and tutorials at below links -
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/examples/samples.html
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/tutorial/tutGettingStarted.html
    http://www.oracle.com/technology/sample_code/products/osb/samples/osb_examples_tutorials_0.pdf
    http://www.oracle.com/technology/products/soa/service-bus/collateral/osbsamples.html
    http://www.oracle.com/technetwork/articles/jumpstart-for-osb-development-page--084104.html
    Oracle service bus installer comes with a eclipse plugin which can be used to develope OSB applications using Eclipse. Refer installation guide to know more.
    You should post OSB related questions in Oracle SOA Suite forum to get better and faster response -
    SOA Suite
    Regards,
    Anuj

  • Error while looking up bean from Eclipse plugin

    Hi all,
       I am developing an Eclipse plugin which calls session bean deployed in some j2ee engine. But I am facing a problem while I try to look up the bean. It gives me an error saying <i>"com.sap.engine.services.jndi.persistent.UnsatisfiedReferenceImpl"</i>.
    I tried print out the UnsatisfiedReferenceImpl stacktrace and it says
    <i>java.lang.ClassNotFoundException: com.sap.engine.services.ejb.session.stateless_sp5.SerializedHomeProxy</i>.
    Does anyone have any idea?
    Regards,
    Satyajit.
    Message was edited by:
            Satyajit Chakraborty

    I have solved the problem. The problem was with an extra classpath entry.
    Regards,
    Satyajit.

  • Oracle Eclipse Plugin 1.3.0.200909171310 - Unable to start a 10.3.1.0 Serv

    Title says it all.... Lost 3 days finding what was the problem.
    The version of Oracle Eclipse Plugin 1.3.0.200909171310
    is completelly unable to a version 10.3.1.0 Server.
    The server starts correctly on the command line.
    In Eclipse the server instance and runtime are created correctly, but when you
    try to start it from eclipse bang!
    Unable to validate WebLogic domain.Please make sure the running WebLogic instance is an Administration Server
    java.lang.Exception:
    at oracle.eclipse.tools.weblogic.server.internal.WlsJ2EEDeploymentHelper.validateRemote(WlsJ2EEDeploymentHelper.java:1670)
    at oracle.eclipse.tools.weblogic.server.internal.WeblogicServerBehaviour.validateRemote(WeblogicServerBehaviour.java:2647)
    at oracle.eclipse.tools.weblogic.server.internal.ServerWatcher.runOnce(ServerWatcher.java:574)
    at oracle.eclipse.tools.weblogic.server.internal.ServerWatcher.run(ServerWatcher.java:482)
    at java.lang.Thread.run(Thread.java:619)

    Well, the server is not running, i just try to start it.
    The message pops instantly, like in 0.5 seconds, it looks like nothing is even performed.
    - what does the <name> element look like in domain/config.xml ? Does it match the server definition?
    <name>dintiruni</name>
    <server>
    <name>intiruni0</name>
    <ssl>
    <name>intiruni0</name>
    <enabled>true</enabled>
    <listen-port>443</listen-port>
    </ssl>
    <listen-port>80</listen-port>
    <listen-address/>
    </server>
    <admin-server-name>intiruni0</admin-server-name>
    yep : C:\owls11gR1\domains\dintiruni\servers\intiruni0
    - what is your version of JDK running Eclipse?
    Sun JDK 1.6.0_17, downloaded manually.
    Same JDK i use during install to run WebLogic 10.3.2.0, I had to do that, since 10.3.2.0 JDK 1.6.0_14
    is not a recongnized JDK when you use -vm parameter in eclipse.ini (10.3.1.0 was working)
    - Try create a new domain, make sure set it as development mode.
    I think i reinstalled WebLogic more than 3 times, recreated the domain with all possible options.
    Reinstalled Eclipse (J2EE with Reporting 3.5.1) with only Oracle Plugin. Recreated my workspace
    3-4 times.
    Additional info:
    I have this message as parent item of the stacktrace in the eclipse Log tree: Another server is detected.
    I had a server version 10.3.1.0, wich i just renamed the installation directory to C:\owls11gR1_10.3.1.0 and installed the 10.3.2.0 in the same directory C:\owls11gR1
    I uninstalled everything, went in regedit, deleted all weblogic keys references.
    Always the same problem. Im starting to loose patience... i have rarelly seen something like that.
    Edit:
    I also tryed with a Server version 10.3.2.0. (I abandonned 10.3.1.0 since i cannot even create the instance in eclipse)
    Edited by: Rouche on Jan 7, 2010 11:42 AM

  • Is there a Bug in Oracle Eclipse Plugin for OSB11gR1PS2

    i have been using the Eclipse plugin for Oracle Service bus, and while desiginng the WSDL in ther design view i faced the following problem
    If you create a skeleton and then add operations, they are not mapped to WSDL:binding
    also if one changes the type of operation, ( from default input output in skeleton) the corrosponding changes are not reflected in WSDl....
    did any1 else face the same problem while designing WSDL??
    Edited by: tarang on Jun 7, 2011 4:23 PM

    Cross post in OEPE forum as well -
    Enterprise Pack for Eclipse
    Regards,
    Anuj

  • Crystal Reports for Eclipse plugin and CR XI server

    I have a software requirement in which I need to support both internal (CR Eclipse plugin using the report viewer, not sure what the real name of this is) along with external (CR XI server) reporting.  In other words, I should be able to display a report (.rpt) that exists on my local app server along with one that exists on the CR XI server.  My question is this:
    So I have both sets of jar libraries (eclipse plugin and XI server) and I see that some of the them are overlapping (some of the jars have the same name).  For the ones that overlap, should I choose the ecilipse plugin or XI server ones...?
    One example I found is that the eclipse plugin rasapp.jar contains the POJOResultSetHelper class whereas the rasapp.jar from the XI server does not.  In this case, I presume I should use the eclipse version, right?
    Thanks for your help!
    Louis

    Hello Louis,
    -If you are using latest version of CR Eclipse plugin using the report viewer,then I would recommend going for JAR files of this eclipse plugin than that of CR XI Server.
    -The only reason being Eclipse plugin will give you most updated JAR files.
    -Before using JAR files from Eclipse plugin, I would suggest you to update your present JAR files to latest available JAR files.
    This can be done through Eclipse using update option.
    And once you update them, you can use those JARs.
    Thanks,
    Chinmay

  • Error when starting weblogic from forthnet eclipse plugin?

    Hi,
    I'm getting an error when trying to start my weblogic server from the forthnet eclipse plugin. (However, it works to start the server from a command prompt on the machine it is running on, and also, it works to stop the server from eclipse)
    Server and eclipse is running on Windows.
    The error reported is:
    <2004-sep-01 kl 16:13 CEST> <Warning> <EmbeddedLDAP> <BEA-171520> <Could not obtain an exclusive lock for directory: .\decisionsite81\ldap\ldapfiles. Waiting for 10 seconds and then retrying in case existing WebLogic Server is still shutting down.>
    <2004-sep-01 kl 16:13 CEST> <Warning> <EmbeddedLDAP> <BEA-171520> <Could not obtain an exclusive lock for directory: .\decisionsite81\ldap\ldapfiles. Waiting for 10 seconds and then retrying in case existing WebLogic Server is still shutting down.>
    <2004-sep-01 kl 16:13 CEST> <Warning> <EmbeddedLDAP> <BEA-171520> <Could not obtain an exclusive lock for directory: .\decisionsite81\ldap\ldapfiles. Waiting for 10 seconds and then retrying in case existing WebLogic Server is still shutting down.>
    <2004-sep-01 kl 16:13 CEST> <Warning> <EmbeddedLDAP> <BEA-171520> <Could not obtain an exclusive lock for directory: .\decisionsite81\ldap\ldapfiles. Waiting for 10 seconds and then retrying in case existing WebLogic Server is still shutting down.>
    <2004-sep-01 kl 16:13 CEST> <Error> <EmbeddedLDAP> <BEA-171519> <Could not obtain an exclusive lock to the embedded LDAP data files directory: .\decisionsite81\ldap\ldapfiles because another WebLogic Server is already using this directory. Ensure that the first WebLogic Server is completely shutdown and restart the server.>
    <2004-sep-01 kl 16:13 CEST> <Critical> <WebLogicServer> <BEA-000364> <Server failed during initialization. Exception:weblogic.server.ServiceFailureException: Could not obtain an exclusive lock to the embedded LDAP data files directory: .\decisionsite81\ldap\ldapfiles because another WebLogic Server is already using this directory. Ensure that the first WebLogic Server is completely shutdown and restart the server.
    weblogic.server.ServiceFailureException: Could not obtain an exclusive lock to the embedded LDAP data files directory: .\decisionsite81\ldap\ldapfiles because another WebLogic Server is already using this directory. Ensure that the first WebLogic Server is completely shutdown and restart the server.
         at weblogic.ldap.EmbeddedLDAP.ensureExclusiveAccess(EmbeddedLDAP.java:959)
         at weblogic.ldap.EmbeddedLDAP.initialize(EmbeddedLDAP.java:221)
         at weblogic.t3.srvr.T3Srvr.initializeHere(T3Srvr.java:814)
         at weblogic.t3.srvr.T3Srvr.initialize(T3Srvr.java:664)
         at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:342)
         at weblogic.Server.main(Server.java:32)
    >
    <2004-sep-01 kl 16:13 CEST> <Emergency> <WebLogicServer> <BEA-000342> <Unable to initialize the server: weblogic.server.ServiceFailureException: Could not obtain an exclusive lock to the embedded LDAP data files directory: .\decisionsite81\ldap\ldapfiles because another WebLogic Server is already using this directory. Ensure that the first WebLogic Server is completely shutdown and restart the server.>
    I've tried removing the "EmbeddedLDAP.lok" file, but without luck.

    Which version of your eclipse? I am using eclipse 3.0 and I am able to start weblogic 8.1 from eclipse.
    I did the following steps:
    1.create a new domain through weblogic's configuration wizard --> basic weblogic server domain --> Express --> proive the user name and password --> development mode, and sun sdk (or other jdk) --> your new domain name
    2. configure weblogic setting in eclipse: preferences --> weblogic --> 8.1, C:\bea\weblogic81, your newly created domain name --> C:\bea\user_projects\domains (domain directory) --> myserver --> admin (or your user name) --> password --> localhost --> 7001
    after that, you should be able to click on "start weblogic server" button from toolbar.
    Hope my two cents solve your problem.

  • How to start weblogic in debug mode from BEA WebLogic Eclipse plugin

    I have a problem making weblogic work with eclipse3.1. I am using a BEA WebLogic plugin to handle weblogic (start/stop) from eclipse. However I want to debug my application and I am unable to figure out a way to start my weblogic in debug mode like we do in WSAD. I tried using some other plugins also but no luck. Please suggest me a plugin to handle this or any other way of debugging my application from eclipse. I am using weblogic 8.1.

    Hi,
    Dev Environment
    weblogic eclipse plugin 2.0 beta
    weblogic server 8.1
    eclipse 3.1.1
    Created a server that i would like to deploy my EJB so that i can put break points on my EJB in eclipse.
    How do i do it?
    I managed to deploy an ear (containing the ejb) directly to the weblogic installed folder and it deployed the ejb. But the breakpoint set in eclipse is not triggered. Of course in this case as weblogic server is running the .ear file deployed manually in the file system.
    Any help is appreciated.
    Mel

  • "Error running javac.exe compiler" when using ant to compile Eclipse plugin

    Hi
    I encounter an error "Error running C:\jdk1.5.0_06\bin\javac.exe compiler" when building my project using ant1.7.
    My project has 10 eclipse plugins, and each plugin is compiled by invoking following ant target
    <!-- ===================================================================
    Compile specified plugin
         target parameters:
              param.plugin.dir: the plugin directory
              param.plugin.targetJarFile: the name of jar file for the given plugin
              param.plugin.src.dir: the folder name of source codes. Note: it is relative path name
              param.fork: indicate if another process is forked to run javac
    =================================================================== -->
    <target name="compilePlugin">
         <!-- Prepare compile environment -->
         <!-- Delete obsolete build folder -->
         <delete dir="${param.plugin.dir}/${build.dir}" quiet="true"/>
         <!-- Delete obsolete jar file -->
         <delete file="${param.plugin.dir}/${param.plugin.targetJarFile}" quiet="true"/>
         <mkdir dir="${param.plugin.dir}/${build.dir}"/>
         <!-- Compile source codes -->
         <javac      srcdir="${param.plugin.dir}/${param.plugin.src.dir}"
                   destdir="${param.plugin.dir}/${build.dir}"
                   failonerror="${javacFailOnError}"
                   verbose="${javacVerbose}"
                   debug="${javacDebugInfo}"
                   deprecation="${javacDeprecation}"
              optimize="${javacOptimize}"
                   source="${javacSource}"
                   target="${javacTarget}"     
                   fork="${param.fork}" memoryInitialSize="256m" memoryMaximumSize="512m">
              <classpath refid="compile.classpath" />
         </javac>
         <!-- Create plugin jar file -->
         <copy todir="${param.plugin.dir}/${build.dir}" failonerror="true">
              <fileset dir="${param.plugin.dir}/${param.plugin.src.dir}" excludes="**/*.java, **/package.htm*" />
         </copy>
         <jar jarfile="${param.plugin.dir}/${param.plugin.targetJarFile}" basedir="${param.plugin.dir}/${build.dir}"/>
         <delete dir="${param.plugin.dir}/${build.dir}" quiet="true"/>
    </target>
    Since each of first 9 plugins contains less than 500 java source files, we always set "param.fork" to false when invoking this ant target.
    For the 10th plugin, it has about 1000 source files. If we set "param.fork" to false, we will get the error "Error running javac.exe compiler". So we have to set "param.fork" to true when compiling it. This week, this plugin contains about 1250 files and we get the same error again when compiling it. I tried to increase the "memoryMaximumSize" to "768", but still couldn't get through it.
    BTW, There are about 150 jar files in our classpath for compiling plugins. Do many jar files cause this problem?
    Any help is highly appreciated.
    Many thanks
    Oceanman

    I encountered a very similar error and I was able to resolve it by removing the following parameters from the javac task:
    fork="${param.fork}"
    memoryInitialSize="256m"
    memoryMaximumSize="512m"My values were not the same as yours, before I removed them, the values were set to:
    fork="true"
    memoryInitialSize="256m"
    memoryMaximumSize="256m" Not sure why this fixed my problem but it did. I was using Ant 1.7 and Java 1.6_07 hope this helps.

  • Simulation using Eclipse plugin for JCOP tools

    Dear All,
    In search for a simulation environment for java card applet development I tried to use Eclipse plugin for JCOP tools.
    The samples which comes with the JCOP tools works fine but when try to debug my applet I receive the error: Wrong Data 6A 80.
    Generic JCOP v2.4.1 is selected for Java Card Simulation.
    Following is the JCOP Shell screen:
    cm- /term "Remote|localhost:8050"
    --Opening terminal
    /card -a a000000003000000 -c com.ibm.jc.CardManagerresetCard with timeout: 0 (ms)
    --Waiting for card...
    ATR=3B F8 13 00 00 81 31 FE 45 4A 43 4F 50 76 32 34 ;.....1.EJCOPv24
    31 B7 1.
    IOCTL().
    ATR: T=1, FI=1/DI=3 (93clk/etu), N=0, IFSC=254, BWI=4/CWI=5, Hist="JCOPv241"
    => 00 A4 04 00 08 A0 00 00 00 03 00 00 00 00 ..............
    (908058 nsec)
    <= 6F 65 84 08 A0 00 00 00 03 00 00 00 A5 59 9F 65 oe...........Y.e
    01 FF 9F 6E 06 47 91 92 18 00 00 73 4A 06 07 2A ...n.G.....sJ..*
    86 48 86 FC 6B 01 60 0C 06 0A 2A 86 48 86 FC 6B .H..k.`...*.H..k
    02 02 01 01 63 09 06 07 2A 86 48 86 FC 6B 03 64 ....c...*.H..k.d
    0B 06 09 2A 86 48 86 FC 6B 04 02 15 65 0B 06 09 ...*.H..k...e...
    2B 85 10 86 48 64 02 01 03 66 0C 06 0A 2B 06 01 +...Hd...f...+..
    04 01 2A 02 6E 01 02 90 00 ..*.n....
    Status: No Error
    cm> set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
    cm> init-update 255
    => 80 50 00 00 08 B1 04 15 2B 41 3F 62 AB 00 .P......+A?b..
    (2668 usec)
    <= 00 00 F9 02 71 E3 BB AD BD CD FF 02 00 00 3D 02 ....q.........=.
    9C 31 C7 89 AD 44 8E 13 17 15 2E 5A 90 00 .1...D.....Z..
    Status: No Error
    cm> ext-auth plain
    => 84 82 00 00 10 CE 6C DC D2 8C BE 5E 33 EC 58 D0 ......l....^3.X.
    57 3A 52 D2 24 W:R.$
    (2288 usec)
    <= 90 00 ..
    Status: No Error
    cm> delete -r a00000006203010c04
    => 80 E4 00 80 0B 4F 09 A0 00 00 00 62 03 01 0C 04 .....O.....b....
    00 .
    (1084 usec)
    <= 6A 88 j.
    Status: Reference data not found
    jcshell: Error code: 6a88 (Reference data not found)
    jcshell: Wrong response APDU: 6A88
    Ignoring expected error
    cm> upload -d -b 250 "D:\JCOP\eclipse\projects\DigitalTachograph\bin\digitaltachograph\javacard\digitaltachograph.cap"
    => 80 E6 02 00 16 09 A0 00 00 00 62 03 01 0C 04 08 ..........b.....
    A0 00 00 00 03 00 00 00 00 00 00 00 ............
    (2100 usec)
    <= 00 90 00 ...
    Status: No Error
    => 80 E8 00 00 FA C4 82 84 42 01 00 25 DE CA FF ED ........B..%....
    02 02 04 00 01 09 A0 00 00 00 62 03 01 0C 04 11 ..........b.....
    64 69 67 69 74 61 6C 74 61 63 68 6F 67 72 61 70 digitaltachograp
    68 02 00 21 00 25 00 21 00 0E 00 29 03 3E 00 CD h..!.%.!...).>..
    23 D2 01 BB 04 44 00 00 09 E3 4B E5 00 11 00 05 #....D....K.....
    01 A2 04 01 00 04 00 29 04 00 01 07 A0 00 00 00 .......)........
    62 00 01 02 01 07 A0 00 00 00 62 01 01 02 01 07 b.........b.....
    A0 00 00 00 62 01 02 02 01 07 A0 00 00 00 62 02 ....b.........b.
    01 03 00 0E 01 0A A0 00 00 00 62 03 01 0C 04 01 ..........b.....
    01 DF 06 00 CD 00 00 00 80 00 00 FF 00 01 00 00 ................
    00 01 81 03 13 00 12 07 03 00 00 02 01 03 06 0B ................
    8C 81 00 00 00 80 00 0B 00 0B 01 01 00 00 0B F9 ................
    00 80 00 11 00 0F 01 01 00 10 0E A9 0D D4 0D F7 ................
    0E 07 0E 18 0E 26 0E 35 0E 44 0E 50 0E 72 0E 81 .....&.5.D.P.r..
    0E 90 0E 9B 0E F5 11 05 11 1A 11 50 00 80 00 05 ...........P....
    00 04 01 04 00 01 13 AF 13 B5 13 BA 14 0C 13 00 ................
    (6775 usec)
    <= 6A 80 j.
    Status: Wrong data
    jcshell: Error code: 6a80 (Wrong data)
    jcshell: Wrong response APDU: 6A80
    Unexpected error; aborting execution
    I will be very happy if you can help me. I am desperately in need of a working debugging environment.
    Thanks in advance!
    Kind regards,
    Mehmet

         * Processes incoming READ_BINARY APDUs. Returns data of the currently
         * selected file.
         * @param apdu   where the offset is carried in header bytes p1 and p2.
         * @param le  expected length by terminal
         * @return length of the response APDU
        private short processReadBinary(APDU apdu, boolean protectedApdu,  short leUnprotected) {
            if (!hasFileSelected()) {
                ISOException.throwIt(SW_CONDITIONS_NOT_SATISFIED);
            byte[] buffer = apdu.getBuffer();
            // retrieve p1p2 from apdu buffer
            byte p1 = buffer[OFFSET_P1];
            byte p2 = buffer[OFFSET_P2];
            short offset = Util.makeShort(p1, p2);     // offset encoded in P1/P2, 15 lowest bit
            // offset encoded in P1/P2, 15 lowest bit
            // check if le != 0 <-- no response expected
            if (leUnprotected == 0) {
                ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
            if (selectedFile == null) {
                ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);
            if ((selectedFile.getAccessConditions() & READ_REQUIRES_SM) == READ_REQUIRES_SM) {
                if(!protectedApdu)
                   ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
            short fileSize = (short) selectedFile.getFileLength();
            // check offset
            if (offset >= fileSize) {
                ISOException.throwIt(ISO7816.SW_INCORRECT_P1P2);
            // check expected length
            if ((short) (offset + leUnprotected) > fileSize) {
                ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
                //ISOException.throwIt(SW_TAMAM);
            short bufferOffset = 0;
            crypto.setEncryptionStatus(isSelectedFileEncrypted());
            if (protectedApdu) {
                bufferOffset = crypto.getApduBufferOffsetDT(leUnprotected);
                if(isSelectedFileEncrypted())
                   bufferOffset = crypto.getApduBufferOffset(leUnprotected);
                apdu.setOutgoing();
            Util.arrayCopyNonAtomic(selectedFile.getData(), offset, buffer, bufferOffset, leUnprotected);
            return leUnprotected;
         * Processes and UPDATE_BINARY apdu. Writes data in the currently selected
         * file.
         * @param apdu
         *            carries the offset where to write date in header bytes p1 and
         *            p2.
        private void processUpdateBinary(APDU apdu, boolean protectedApdu) {
            if (!hasFileSelected() || isLocked()) {
                ISOException.throwIt(ISO7816.SW_COMMAND_NOT_ALLOWED);
            if ((selectedFile.getAccessConditions() & DigitalTachograph.UPDATE_ALW) != DigitalTachograph.UPDATE_ALW) {
                if ((selectedFile.getAccessConditions() & DigitalTachograph.UPDATE_REQUIRES_SM) != DigitalTachograph.UPDATE_REQUIRES_SM) {
                    ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
                    return;
                }else if(!protectedApdu){
                        ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED);
            byte[] buffer = apdu.getBuffer();
            byte p1 = buffer[OFFSET_P1];
            byte p2 = buffer[OFFSET_P2];
            short offset = Util.makeShort(p1, p2);
            short readCount = (short) (buffer[ISO7816.OFFSET_LC] & 0xff);
            //if (!protectedApdu){
                readCount = apdu.setIncomingAndReceive();
            while (readCount > 0) {
                selectedFile.writeData(offset, buffer, OFFSET_CDATA, readCount);
                offset += readCount;
                readCount = apdu.receiveBytes(ISO7816.OFFSET_CDATA);
        private short processInternalAuthenticate(APDU apdu , boolean protectedApdu) throws CryptoException {
            byte[] buffer = apdu.getBuffer();
            short lc = (short) (buffer[OFFSET_LC] & 0xFF);
            if (lc != (short) (KID_LENGTH * 2)) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            if (apdu.setIncomingAndReceive() != lc) {
                ISOException.throwIt(ISO7816.SW_WRONG_DATA);
            // Check if VU.CHR maches the one of the selected certificate on the card
            if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + KID_LENGTH), keyStore.selected_KID, (short) 0, KID_LENGTH) != 0) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            if (Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, Rnd1, (short) 0, (short) 8) != (short) 8) { // Receive Rnd1
                ISOException.throwIt(ISO7816.SW_WRONG_DATA);
            // Hash(PRnd2||K1||Rnd1||VU.CHR)
            random.generateData(PRnd2, (short) 0, (short) 90);
            random.generateData(K1, (short) 0, (short) 16);
            crypto.shaDigest.update(PRnd2, (short) 0, (short) 90); // PRnd2
            crypto.shaDigest.update(K1, (short) 0, (short) 16); // PRnd2||K1
            crypto.shaDigest.doFinal(buffer, OFFSET_CDATA, lc, digest, (short) 0); //Rnd1||VU.CHR
            BigNumber mod = new BigNumber((short) 128);
            mod.init(keyStore.Card_PubMod, (short) 0, (short) keyStore.Card_PubMod.length, BigNumber.FORMAT_HEX);
            mod.subtract(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX);
            if (mod.compareTo(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX) == -1) {
                mod.toBytes(signed, (short) 0, (short) 128, BigNumber.FORMAT_HEX);
            // To be added: if the selected private key is considered corrupted, the processing state returned is '6400' or '6581'.
            signed[0] = (byte) 0x6A;
            Util.arrayCopyNonAtomic(PRnd2, (short) 0, signed, (short) 1, (short) 90);
            Util.arrayCopyNonAtomic(K1, (short) 0, signed, (short) 91, (short) 16);
            Util.arrayCopyNonAtomic(digest, (short) 0, signed, (short) 107, (short) 20);
            signed[127] = (byte) 0xBC;
            if (!keyStore.cardPrivateKey.isInitialized()) {
                CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
            try {
                crypto.rsaSigner.init(keyStore.cardPrivateKey, Signature.MODE_SIGN);
                crypto.rsaSigner.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            if (!keyStore.selectedPublicKey.isInitialized()) {
                CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
            try {
                crypto.rsaCipher.init(keyStore.selectedPublicKey, Cipher.MODE_ENCRYPT);
                crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            apdu.setOutgoing();
            Util.arrayCopyNonAtomic(signed, (short) 0, buffer, (short) 0, (short) 128);
            return (short) signed.length;
        private void processExternalAuthenticate(APDU apdu) {
            short equipmentType = 0;
            if (keyStore.Selected_Cert != null) {
                equipmentType = (short) keyStore.Selected_Cert.CHA[6]; // check equipment type
            if (equipmentType != (short) 1 && equipmentType != (short) 2 && equipmentType != (short) 3 && equipmentType != (short) 4 && equipmentType != (short) 6) {
                ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED); // Instead of 6F00 throw a more meaningfull SW in case CHA is not valid.
            if (Util.arrayCompare(keyStore.Selected_Cert.CHA, (short) 0, TACHOGRAPH_AID, (short) 0, (short) 6) != 0) {
                ISOException.throwIt(ISO7816.SW_FUNC_NOT_SUPPORTED);
            byte[] buffer = apdu.getBuffer();
            byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
            byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
            if (p1 != 0 || p2 != 0) {
                ISOException.throwIt(SW_WRONG_P1P2);
            short lc = (short) (buffer[OFFSET_LC] & 0xFF);
            if (lc != (short) (128)) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            if (apdu.setIncomingAndReceive() != lc) {
                ISOException.throwIt(ISO7816.SW_WRONG_DATA);
            Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, signed, (short) 0, (short) 128); // receive the cryptogram from the VU
            // decrypt the encrypted message with the card private key
            try {
                crypto.rsaCipher.init(keyStore.cardPrivateKey, Cipher.MODE_DECRYPT);
                crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            // verify the signature with the VU public key
            try {
                crypto.rsaCipher.init(keyStore.selectedPublicKey, Signature.MODE_VERIFY); // Cipher.MODE_ENCRYPT
                crypto.rsaCipher.doFinal(signed, (short) 0, (short) 128, signed, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
            if (signed[0] != (byte) 0x6A || signed[127] != (byte) 0xBC) {
                ISOException.throwIt(Util.makeShort(signed[0], signed[127]));
            try {
                verifyCardCertificates();
                Util.arrayCopyNonAtomic(signed, (short) 1, preDigest, (short) 0, (short) 106); // accumulate preDigest
                Util.arrayCopyNonAtomic(Rnd3, (short) 0, preDigest, (short) 106, (short) 8); // accumulate preDigest
                Util.arrayCopyNonAtomic(keyStore.Card_Cert.CHR, (short) 0, preDigest, (short) 114, (short) 8); // accumulate preDigest
                Util.arrayCopyNonAtomic(signed, (short) 91, K2, (short) 0, (short) 16); // receive K2 value
                crypto.shaDigest.update(signed, (short) 1, (short) 106); // PRnd4||K2
                crypto.shaDigest.update(Rnd3, (short) 0, (short) 8); // Rnd3
                crypto.shaDigest.doFinal(keyStore.Card_Cert.CHR, (short) 0, (short) 8, digest, (short) 0); //||Card.CHR
            } catch (Exception e) {
                ISOException.throwIt(SW_TAMAM);
            if (Util.arrayCompare(signed, (short) 107, digest, (short) 0, (short) 20) != 0) {
                ISOException.throwIt(SW_TAMAM);
            volatileState[0] |= MUTUAL_AUTHENTICATED;
            try {
                DTUtil.xor(K1, (short) 0, K2, (short) 0, KaKb, (short) 0, (short) 16);
                Util.arrayCopyNonAtomic(Rnd3, (short) 4, SSC, (short) 0, (short) 4); // tail of Rnd3
                Util.arrayCopyNonAtomic(Rnd1, (short) 4, SSC, (short) 4, (short) 4); // tail of Rnd1
            } catch (Exception e) {
                ISOException.throwIt(SW_TAMAM);
            try {
                keyStore.setKey_Ka(KaKb, (short) 0);
                keyStore.setKey_Kb(KaKb, (short) 8);
                keyStore.setSecureMessagingKeys(KaKb, (short) 0, KaKb, (short) 0);
            } catch (Exception e) {
                ISOException.throwIt(SW_TAMAM_DEGIL);
            return;
        private short returnPreDigest(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            apdu.setOutgoing();
            Util.arrayCopyNonAtomic(preDigest, (short) 0, buffer, (short) 0, (short) 122);
            return (short)preDigest.length;
        private short returnDigest(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            apdu.setOutgoing();
            Util.arrayCopyNonAtomic(digest, (short) 0, buffer, (short) 0, (short) 20);
            return (short)digest.length;
        private short returnOriginalText(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            apdu.setOutgoing();
            Util.arrayCopyNonAtomic(signed, (short) 0, buffer, (short) 0, (short) 128);
            return (short)signed.length;
        private void processVerify(APDU apdu) { // Verify_CHV(Pin_Ws)
            byte[] buffer = apdu.getBuffer();
            // retrieve the PIN data for validation.
            byte byteRead = (byte) (apdu.setIncomingAndReceive());
            // the PIN data is read into the APDU buffer
            // at the offset ISO7816.OFFSET_CDATA the PIN data length = byteRead
            if (pin.check(buffer, ISO7816.OFFSET_CDATA, byteRead) == false) {
                ISOException.throwIt(SW_VERIFICATION_FAILED);
            return;
        private void processPSO(APDU apdu) { // verify certificate
            byte[] buffer = apdu.getBuffer();
            byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
            byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
            short lc = (short) (buffer[ISO7816.OFFSET_LC] & 0xFF);
            if (p1 == (byte) 0x00 && p2 == P2_VERIFYCERT) {
                if (lc != TACHO_CERT_LENGTH) {
                    ISOException.throwIt(SW_WRONG_LENGTH);
                if (apdu.setIncomingAndReceive() != lc) {
                    ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
                try { // copy the certificate to be verified from APDU buffer to cert object
                    Util.arrayCopyNonAtomic(buffer, OFFSET_CDATA, cert, (short) 0, lc);
                } catch (Exception e) {
                    ISOException.throwIt(SW_TAMAM);
                if (Util.arrayCompare(keyStore.selected_KID, (short) 0, keyStore.ERCA_KID, (short) 0, KID_LENGTH) == 0) {
                    keyStore.VUCA_Cert.verifyCert(cert, keyStore.selectedPublicKey, keyStore.selected_KID);
                } else if (Util.arrayCompare(keyStore.selected_KID, (short) 0, keyStore.VUCA_Cert.CHR, (short) 0, KID_LENGTH) == 0) {
                    keyStore.VU_Cert.verifyCert(cert, keyStore.selectedPublicKey, keyStore.selected_KID);
                } else {
                    ISOException.throwIt(SW_CERT_VERIFICATION_FAILED); // Selected keyId, with MSE, is neither ERCA_KID nor VUCA_KID
            } else {
                ISOException.throwIt(SW_CERT_VERIFICATION_FAILED);
            return;
        private short processGetChallenge(APDU apdu, boolean protectedApdu) {
            byte[] buffer = apdu.getBuffer();
            byte p1 = (byte) (buffer[OFFSET_P1] & 0xff);
            byte p2 = (byte) (buffer[OFFSET_P2] & 0xff);
            if (p1 != 0 || p2 != 0) {
                ISOException.throwIt(SW_WRONG_P1P2);
            random.generateData(Rnd3, (short) 0, (short) 8);
            short Le = apdu.setOutgoing();
            if (Le != (short) 8) {
                ISOException.throwIt(SW_WRONG_LENGTH);
            Util.arrayCopyNonAtomic(Rnd3, (short) 0, buffer, (short) 0, (short) 8);
            return Le;
        private void processMSE(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            if (buffer[OFFSET_P1] == (byte) 0xC1 && buffer[OFFSET_P2] == P2_DST) {
                short lc = (short) (buffer[OFFSET_LC] & 0xFF);
                if (lc != (short) (KID_LENGTH + 2)) {
                    ISOException.throwIt(SW_WRONG_LENGTH);
                if (apdu.setIncomingAndReceive() != lc) {
                    ISOException.throwIt(ISO7816.SW_WRONG_DATA);
                if (buffer[OFFSET_CDATA] != (byte) 0x83) {//check the tag of the data
                    ISOException.throwIt(SW_SECURE_MESSAGING_DATA_OBJECTS_MISSING);
                } else if (buffer[OFFSET_CDATA + 1] != (byte) 0x08) {
                    ISOException.throwIt(SW_INCORRECT_DATA_OBJECT); // check if the key is already selected one
                } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.selected_KID, (short) 0, KID_LENGTH) != 0) {
                    if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.ERCA_KID, (short) 0, KID_LENGTH) == 0) {// KID is EUR_KID
                        keyStore.selected_KID = keyStore.ERCA_KID;
                        keyStore.selectedPublicKey = keyStore.eurPublicKey;
                        keyStore.Selected_Cert = null; // ERCA public key is selected
                        return;
                    } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.VUCA_Cert.CHR, (short) 0, KID_LENGTH) == 0) {// KID is MSCA_KID
                        keyStore.Selected_Cert = keyStore.VUCA_Cert;
                    } else if (Util.arrayCompare(buffer, (short) (OFFSET_CDATA + 2), keyStore.VU_Cert.CHR, (short) 0, KID_LENGTH) == 0) { // KID is VU_KID
                        keyStore.Selected_Cert = keyStore.VU_Cert;
                    } else {
                        ISOException.throwIt(SW_REFERENCE_DATA_NOT_FOUND);
                    }// KID not found
                    keyStore.selectedPublicKey = keyStore.Selected_Cert.publicKey;
                    keyStore.selected_KID = keyStore.Selected_Cert.CHR;
                } else { // if the KID is already set, just return
                    return;
            } else {
                ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
        private void processSelectFile(APDU apdu) {
            byte[] buffer = apdu.getBuffer();
            short lc = (short) (buffer[OFFSET_LC] & 0x00FF);
            // retrieve p1p2 from apdu buffer
            byte p1 = buffer[OFFSET_P1];
            byte p2 = buffer[OFFSET_P2];
            short p1p2 = Util.makeShort(p1, p2);
            apdu.setIncomingAndReceive();
            if (p1 == 4) {
                if (lc == (short) TACHO_AID_LENGTH) {
                    if (Util.arrayCompare(buffer, (short) OFFSET_CDATA, TACHOGRAPH_AID, (short) 0, (short) TACHO_AID_LENGTH) == 0) {
                        selectedFile = fileSystem.getDT();
                        fileSystem.selectDT();
                        volatileState[0] |= FILE_SELECTED;
                        return;
                    } else {
                        ISOException.throwIt(ISO7816.SW_WRONG_DATA);
                } else if (lc != 2) {
                    ISOException.throwIt(SW_WRONG_LENGTH);
                short fid = Util.getShort(buffer, OFFSET_CDATA);
                if (fileSystem.getFile(fid) != null) {
                    selectedFile = fileSystem.getDT();
                    fileSystem.selectDT();
                    volatileState[0] |= FILE_SELECTED;
                    return;
            } else if (p1 == 2) {
                if (lc != 2) {
                    ISOException.throwIt(SW_WRONG_LENGTH);
                short fid = Util.getShort(buffer, OFFSET_CDATA);
                if (fileSystem.getFile(fid) != null) {
                    selectedFile = fileSystem.getFile(fid);
                    volatileState[0] |= FILE_SELECTED;
                    return;
            } else {
                ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
            setNoFileSelected();
            ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);
        public static void setNoFileSelected() {
            if (hasFileSelected()) {
                volatileState[0] ^= FILE_SELECTED;
        public static boolean hasFileSelected() {
            return (volatileState[0] & FILE_SELECTED) == FILE_SELECTED;
        public static boolean hasMutuallyAuthenticated() {
            return (volatileState[0] & MUTUAL_AUTHENTICATED) == MUTUAL_AUTHENTICATED;
        static boolean isLocked() {
            return (persistentState & LOCKED) == LOCKED;
        public boolean isSelectedFileEncrypted() {
            return ((selectedFile.getAccessConditions() & DigitalTachograph.ENCRYPTED) == DigitalTachograph.ENCRYPTED);
    }

Maybe you are looking for