JCTerminal implementation for non pc/sc reader

Hi every1,
I would interface JCOP tools with a non pc/sc contactless reader.
The reader has a RS232 interface and has a dll that allows to connect and send raw apdus.
I know that JCOP connects to readers using off-card apis, I think I have to develop a NativeJCTerminal driver.
Pegoda driver is developed in the same way, but related classes are obfuscated.
Can someone give me any guide line to do that? Obviously there's no code around IBM site.
Best regards, Dariush.

Hello dariush,
can you tell me if you success to do this ?
I'm searching to connect to as contactless reader from the jcop tools but i cannot find any information on it.
Thanks

Similar Messages

  • NAVS for Non-ded Cond Type...  Has anybody implemented NAVD Ded Cond Type?

    Dear Gurus,
    Condition type NAVS is available for Non-deductible Taxes in the PO which is taken into account during Print Preview. 
    Supposing there are Service Tax which is of a deductible nature. Should it appear in the Condition tab along with Non-deductible condition type?
    Has anybody implemented NAVD Cond Type defined as Deductible tax?
    Awaiting your feedback.
    Thanks
    M

    What I have further found out:
    - It is not a problem of reduced message types or release:
    I have tested it with the standard condition Idoc Type and also on a 6.20 and 7.00 basis release system.
    It seems that the report RBDMIDOC filters not valid conditions.

  • Implementation strategy for non sap sources

    hai friends,
                could anyone help with the
    'implementation strategy for non sap sources'.

    Hi,
    Its the same as with R3 sources.Only difference is you'll have different underlying interfaces. Non SAP systems can either be flat files, ETL systems or legacy systems using ETL connection, Oracle or Java systems XML, etc.
    But your stategy would remain the same only per your non sap source system, the transactions and the ways you configure your datasources would differ.
    Cheers,
    Kedar

  • Adobe Reader for non-symbian devices

    Why do I have to have a symbian device to read pdf files? We don't need complex operations on a cell-phone with Adobe, other than reading the e-mail attachment.
    I would pay for a Java version of the Reader to run on my non-symbian phone.

    Thanks George, interesting thought.  I looked on Adobe's site and they "advertise" fillable forms for the iPhone and Android markets, but on the Windows Phone tab, that is mysteriously missing.  lol    Maybe it will come later?   Meanwhile, I'll google to see if there are any PDF viewers that can handle it now.   Thanks for the reply.  :-)

  • CIC for Non-ISU implementation

    Hi,
    I was wondering if anyone has implemented or has information/knowledge of CIC in a non-ISU implementation (Eg: SD module). I do understand the CIC0 transaction was basically built for ISU module and it supports ISU data model. But I would like to know if there is chance of using CIC in other R/3 module, typically replacing/integrating XD03/VA03 etc.
    You are experinace/comments are appreciated.
    Thanks, Anand

    Hi Anand,
    Yes CIC can be used for non ISU function. Fundamentally the ISU Finder and data envoirnment overview are specific to ISU domain.
    Initially CIC was part of customer services (R/3) module and then got extended to ISU side.
    In order to fulfill R/3 requirement you might need to create the front office processes using R/3 specific BOR like BUS 2028 etc.
    Best Regards
    Amit Rastogi

  • How to implement Personal Information for non supported countries

    Hi,
       Can anyone give me some tips on how to implement Personal Information ESS services for countries which are not supported by the standard business package. We need to implement for the following countries as well as a part of global implementation.
    Cyprus
    Czech Republic
    Egypt
    Ireland
    Luxembourg
    Monaco
    Russia
    Ukraine
    Regards,
    Subhadip

    Hi Subhadip,
    You need to the following customization settings in SPRO.
    Personnel Management->ESS->Service Specific settings->OWn Data->Reuse Country Specific Application
    Just follow the IMG documentation and it should be done.  Basically we do,
    1.  Identify the Infotype and the country for which we want to re-use existing application (e.g Egypt).
    2.  Select the country from which you want to copy the screens (e.g. Australia, India)
    3. Specify the "Use Case and Active Subtypes" for that country.  Follow the documentation for this node.
    4. Maintain country specific entries for services (in this case will add entries for the new countries added).
    Hope this helps.
    Regards,
    Jigar

  • SSO FOR NON SAP APPLICATIONS

    SSO for non sap applications in EP on which siteminder sso is integrated
    Posted: Aug 28, 2006 7:09 AM        Reply      E-mail this post 
    Hi ,
    we have implemented Siteminder on SAP PORTAL 6 SP16 for authentication.I would like to integrate non sap application in Portal.I could not find any documentaion for setting up non sap application's in portal on which siteminder external authentication is implemented.
    can anybody help for getting step by step document.
    diff rewards to be given

    Hi,
    if you have access to service.sap.com via S-User, you can download "SAP Enterprise Portal Security Guide" in the portal section. It has dedicated descriptions about SSO-Settings, also about netegrity.
    You can also search help.sap.com about "SSO" which gives you overview descriptions.
    On SAP Service Net, there is also an pdf "Integrating Security functions" in the Netweaver 2004s Portal section, where the description of the Java API for the PDK is included. This is very helpfull for coding.

  • SetMnemonic for non-english characters

    Does anybody knos how to set JButtons mnemonic for non-english characters?
    My mnemonic is loaded from a resource bundle, and in the documentation the setMnemonic(char) is only limited to english and it is written that the user should call setMnemonic(int) instead.
    So what value should this int contains in order to display the non-english char which is loaded from resource bundle?
    Thanks in advanve,
    Hanoch

    It seems that this is an issue that has popped up in various forums before, here's one example from last year:
    http://forum.java.sun.com/thread.jspa?forumID=16&threadID=490722
    This entry has some suggestions for handling mnemonics in resource bundles, and they would take care of translated mnemonics - as long as the translated values are restricted to the values contained in the VK_XXX keycodes.
    And since those values are basically the English (ASCII) character set + a bunch of function keys, it doesn't solve the original problem - how to specify mnemonics that are not part of the English character set. The more I look at this I don't really understand the reason for making setMnemonic (char mnemonic) obsolete and making setMnemonic (int mnemonic) the default. If anything this has made the method more difficult to use.
    I also don't understand the statement in the API about setMnemonic (char mnemonic):
    "This method is only designed to handle character values which fall between 'a' and 'z' or 'A' and 'Z'."
    If the type is "char", why would the character values be restricted to values between 'a' and 'z' or 'A' and 'Z'? I understand the need for the value to be restricted to one keystroke (eliminating the possibility of using ideographic characters), but why make it impossible to use all the Latin-1 and Latin-2 characters, for instance? (and is that in fact the case?) It is established practice on other platforms to be able to use characters such as '�', '�' and '�', for instance.
    And if changes were made, why not enable the simple way of specifying a mnemonic that other platforms have implemented, by adding an '&' in front of the character?
    Sorry if this disintegrated into a rant - didn't mean to... :-) I'm sure there must be good reasons for the changes, would love to understand them.

  • "initial non-cumulative for non-cumulative values"  is not available in DTP (0AFMM_C02)

    Hi Experts,
    We are working for BI implementation for AFS Industry,
    when we are working on AFS specific inventory cube 0AFMM_C02 , we are facing stock mismatch problem
    for AFS Stock initialization we are using the data source 2LIS_AF_STOCK_INITALIZATION instead of 2LIS_03_BX, this data source is specificly designed for AFS
    when we are extracting the data using 2LIS_AF_STOCK_INITALIZATION for stock initialization and
    2LIS_03_BF data source to load the Moments.
    we compressed cube with Marker update for 2LIS_AF_STOCK_INITALIZATION data load(by deselecting the No marker update check box)
    we compressed cube with No Marker update for 2LIS_03_BF historical data load(by selecting the No marker update check box)
    we compressed cube with Marker update for 2LIS_03_BF Delta data load(by deselecting the No marker update check box)
    Now we are facing stock mistach problem, we found reason for this
    "initial non-cumulative for non-cumulative values" option is not available in DTP only Delta & Full options are available
    and infopackage of  2LIS_AF_STOCK_INITALIZATION data source also has "Full update" instead of "Generate Intial Status"
    Please let us know how can we get the "initial non-cumulative for non-cumulative values" option in the DTP level.
    Regards,
    Chandra

    Hi Chandrakumar,
    We are facing the same problem, how do you solve it?
    Regards,

  • Word Replacements for Non- English Characters

    Hi
    Does anyone have an idea on implementing Word Replacements for non- english characters in TCA- DQM 11i.
    We are trying to identify, capture and cleanse common accented characters like à, â , ê
    However, the default language for replacement is American English , So even if we add these in the existing lists it will not take any effect
    Is creating a new Word replacement list for every language the solution ?? any patch recommendations???
    Thanks in advance

    It seems that this is an issue that has popped up in various forums before, here's one example from last year:
    http://forum.java.sun.com/thread.jspa?forumID=16&threadID=490722
    This entry has some suggestions for handling mnemonics in resource bundles, and they would take care of translated mnemonics - as long as the translated values are restricted to the values contained in the VK_XXX keycodes.
    And since those values are basically the English (ASCII) character set + a bunch of function keys, it doesn't solve the original problem - how to specify mnemonics that are not part of the English character set. The more I look at this I don't really understand the reason for making setMnemonic (char mnemonic) obsolete and making setMnemonic (int mnemonic) the default. If anything this has made the method more difficult to use.
    I also don't understand the statement in the API about setMnemonic (char mnemonic):
    "This method is only designed to handle character values which fall between 'a' and 'z' or 'A' and 'Z'."
    If the type is "char", why would the character values be restricted to values between 'a' and 'z' or 'A' and 'Z'? I understand the need for the value to be restricted to one keystroke (eliminating the possibility of using ideographic characters), but why make it impossible to use all the Latin-1 and Latin-2 characters, for instance? (and is that in fact the case?) It is established practice on other platforms to be able to use characters such as '�', '�' and '�', for instance.
    And if changes were made, why not enable the simple way of specifying a mnemonic that other platforms have implemented, by adding an '&' in front of the character?
    Sorry if this disintegrated into a rant - didn't mean to... :-) I'm sure there must be good reasons for the changes, would love to understand them.

  • What is current CommSuite support for non-ASCII passwords?

    Hello all,
    Some of our users managed to change their passwords to non-ASCII strings (via replication from MSAD by ISW) and no longer have access to their communications services.
    While replicating the problem, I have set a (UTF-8 non-ASCII) string as my password in DSEE directly, and *can* log in to Convergence with this password. However, if I change the working password to a non-ASCII string from Convergence itself - it is accepted during the secondary password check, there is no error returned, SOME password is apparently saved into the LDAP directory, but neither of the original non-ASCII plaintext strings can be used for login back into Convergence. Restoration of access is only doable by admin at this point.
    Checking email by IMAP from Thunderbird no longer works with a changed non-ASCII password (including the state when it still works for Convergence).
    Delegated Admin has an explicit check for non-ASCII characters in the password and refuses to set a misbehaving one.
    I see that among the standards supported by CommSuite, there is IMAP4rev1, and RFC 5255 refers to it as the reason that non-ASCII passwords and usernames are for now not supported, though this is expected to be a temporary state of things, and software can prepare for the future by implementing checks for valid UTF-8 strings as well.
    https://wikis.oracle.com/display/CommSuite/Messaging+Server+Supported+Standards
    http://tools.ietf.org/html/rfc5255
    5.1.  Unicode Userids and Passwords
       IMAP4rev1 currently restricts the userid and password fields of the
       LOGIN command to US-ASCII.  The "userid" and "password" fields of the
       IMAP LOGIN command are restricted to US-ASCII only until a future
       standards track RFC states otherwise.  Servers are encouraged to
       validate both fields to make sure they conform to the formal syntax
       of UTF-8 and to reject the LOGIN command if that syntax is violated.
       Servers MAY reject the LOGIN command if either the "userid" or
       "password" field contains an octet with the highest bit set.
       When AUTHENTICATE is used, some servers may support userids and
       passwords in Unicode [RFC3490] since SASL (see [RFC4422]) allows
       that.  However, such userids cannot be used as part of email
       addresses.
    So, the main question at this point is: does or does not all of the CommSuite stack support non-ASCII passwords?
    If no - please confirm, so we can instruct the users to not create problems for themselves (and maybe manage to set up some policy to not accept non-ASCII passwords to MSAD/DSEE in the first place).
    If yes - what should be done to enable support in Convergence/IMAP/SMTP/XMPP/WCAP/WABP/... services - perhaps, setting the LANG/LC_ALL locale environment variables or equivalent JVM flags for UTF-8 in server startup scripts, etc.? (I know that DSEE ldapsearch requires either envvars or a command-line flag for charset encoding of values, so I figure similar quirks may be relevant for some other software)
    Thanks in advance for either response,
    //Jim Klimov

    I can't respond for the suite, but the Messaging Server product should work with UTF-8 usernames and passwords as long as the standard SASL authentication mechanisms that are documented to use UTF-8 are used (e.g. SASL PLAIN). IMAP LOGIN may work fine with UTF-8 as well even though that's non-standard. We do not implement SASLprep, however, so the strings provided by the client to the server must be identical UTF-8 strings for authentication to succeed. If they are provided in a different decomposition, different canonical form or non-standard charset, that's not supported and will fail. We don't test this scenario extensively, so you may encounter bugs (that we'd have to prioritize and fix as with other bugs). Messaging Server recently implemented a restricted option (broken_client_login_charset) for a customer who was stuck with broken clients that sent ISO-8859-1 for the IMAP login command arguments.

  • Pagination support for non-Oracle databases?

    Hi,
    I just read this thread (Pagination Support on pagination support. Is there any way to get pagination with non-Oracle databases? We are using an IBM iSeries / AS/400 DB2 database right now, and we're planning to use some local lightweight database in the near future as well (probably Cloudscape/Derby or "IBM Everyplace database".)
    We currently use code like this:
    String sql = "SELECT art FROM Artikel art" +
                /* dynamically generated where statement is added here */
                + "ORDER BY art.artikelNummer";
    Query q = em.createQuery(sql);
    q.setFirstResult(firstResult);
    q.setMaxResults(maxResults);If I look in the TopLink logs, I see queries like this:
    SELECT ARTNR, ARALT, ARAFJ, ARXII, ARAVJ, ARXIV, ARANJ, AHGCD, ARNVJ, ARCRJ, ARARK, ARFKJ, ARTNK, ARGP1, ASGCD, ARGP2, ARPR1, ARGP3, ARPR2, AREX1, ARPR3, AREX2, ARPR4, AREX3, ARASA, ARINA, ASSCD, ARIA1, ARBAN, ARIN1, ARBAV, ARIA2, ARBAK, ARIN2, ARCES, ARIA3, ARCDT, ARIN3, ARCRE, ARIA4, ARCWK, ARIN4, ARHBH, ARIA5, ARDFA, ARIN5, ARDFG, ARIA6, ARDOS, ARIN6, AREPW, ARINN, ARFOD, ARIAS, ARFOE, ARINS, ARFOF, ARNAB, ARFOI, ARNIB, ARFON, ARNIA, ARFOS, ARNN1, ARFTA, ARNA2, ARVIV, ARNO2, ARGAP, ARNN3, ARGPT, ARNA4, ARGPD, ARNO4, ARGPA, ARNN5, ARGPO, ARNA6, ARHIS, ARNN6, ARISP, ARNIO, ARKHM, ARNNS, MAGCD, AROVJ, MTGCD, ARPL1, ARMXM, ARPL2, MRKCD, ARPL3, ARMVR, ARVKJ, ARMIM, ARV12, ARMDT, ARVVJ, ARMTE, AR#VR, ARMTU, ARZLS, ARMTM, ARIAT, ARMWK, ARAVS, MPCCD, ARNVS, ARBTW, ARFJS, ARXI2, ARG2S, ARXI3, ARE1S, ARXI4, ARE3S, ARXI6, ARIB1, ARXI1, ARIB2, ARXI5, ARIB3, AROPI, ARIB4, ARPRV, ARIB5, SZGCD, ARIB6, ARSPC, ARINO, ARSMF, ARIOS, VEAAN, ARNIS, ARSYN, ARNO1, ARVR1, ARNA3, ARV1S, ARNN4, ARVR2, ARNO5, ARV2S, ARNIN, ARVR3, ARNOS, ARV3S, ARP1S, ARTFA, ARP3S, ARTFG, ARS12, ARUVC, ARZLD, ARUCW, ARAJS, ARBKV, ARCJS, ARVVI, ARG3S, ARVVP, ARINB, VPOCD, ARIO2, VPECD, ARIO4, ARVIH, ARIO6, ARVHG, ARNBS, ARVRW, ARNN2, ARVPR, ARNA5, ARVVR, ARNAS, ARVVS, ARP2S, ARVV1, ARSVV, ARZK1, ARNJS, ARNA1, ARNO3, ARIO1, ARNO6, ARIO5, AROJS, ARE2S, ARVJS, ARIBS, ARIAD, ARIO3, ARG1S FROM ART WHERE ((((ARUVC = 'N') AND (ARHIS = 'N')) AND (ASGCD = 7)) AND (AHGCD = 15)) ORDER BY ARTNR ASC
    (Yeah, I know we have too much columns in the table...)
    So, no pagination in the query. As you can see, we have a mechanism in place to dynamically generate a where clause. This is because the user can set filters. The problem is, if our user sets a filter that causes the result set to be significantly smaller, the performance is way better than when he sets no filter at all. We suppose this is because the whole result set is sent to TopLink, regardless of the values of firstResult and maxResults.
    We are using TopLink Essentials 2.1-10, by the way.
    Message was edited by:
    Bart Kummel

    Hi all,
    I'm trying to subclass <tt>DatabasePlatform</tt> to add pagination support for the AS/400 DB2 database of my customer. To be fair, it is not going very well so far.
    The first problem is, the query Chris found by googling (Re: Pagination support for non-Oracle databases?), does not work for AS/400s version of DB2. In fact, although it is called "DB2", the database on the AS/400 system is a whole other database than the "normal" DB2 database that runs on Windows and *nix. The AS/400 DB2 simply does not have a "ROW_NEXT" function.
    Another option would be to use the <b>row_number() over()</b> mehtod. But, as can be read here, this function is only available from version V5R4 of OS/400. And guess what? We're stuck on V5R3 at this client. (We cannot upgrade, because there's an application in use that's written in Delphi and IBM dropped the Delphi binding from V5R4...)
    So I pretty much ran out of options. On the mailing list I linked to above, someone mentions the option to make a sort of stored procedure that generates a row count number. An example of how to do this can be found here. I implemented it, and ended up with this code:
    package com.myclientsname.persistence;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import org.eclipse.persistence.expressions.ExpressionBuilder;
    import org.eclipse.persistence.internal.databaseaccess.DatabaseCall;
    import org.eclipse.persistence.internal.expressions.ExpressionSQLPrinter;
    import org.eclipse.persistence.internal.expressions.SQLSelectStatement;
    import org.eclipse.persistence.internal.sessions.AbstractSession;
    import org.eclipse.persistence.logging.SessionLog;
    import org.eclipse.persistence.platform.database.DatabasePlatform;
    import org.eclipse.persistence.sessions.SessionProfiler;
    public class AS400Platform extends DatabasePlatform {
        private static final long serialVersionUID = 0L;
        public AS400Platform(){
             super();
             super.setShouldBindAllParameters(false);
        public void printSQLSelectStatement(DatabaseCall call, ExpressionSQLPrinter printer, SQLSelectStatement statement) {
            int max = 0;
            int firstRow = 0;
            if (statement.getQuery()!=null){
                max = statement.getQuery().getMaxRows();
                firstRow = statement.getQuery().getFirstResult();
            if ( !(max>0) && !(firstRow>0) ){
                super.printSQLSelectStatement(call, printer,statement);
                return;
            } else {
                statement.setUseUniqueFieldAliases(true);
                ExpressionBuilder builder = new ExpressionBuilder();
                statement.addField(builder.getField("COUNTER() AS CNTR"));
                printer.printString("SELECT * FROM (");
                call.setFields(statement.printSQL(printer));
                printer.printString(") AS R WHERE R.CNTR >= ");
                printer.printParameter(DatabaseCall.FIRSTRESULT_FIELD);
                if ( max > 0 ){
                    // Use of binding parameters is not allowed here, so use
                    // String concatenation instead...
                    printer.printString(" FETCH FIRST " + max + " ROWS ONLY");
            call.setIgnoreFirstRowMaxResultsSettings(true);
        public boolean wasFailureCommunicationBased(SQLException exception, Connection connection, AbstractSession sessionForProfile){
            if (connection == null || this.pingSQL == null){
                //Without a connection we are  unable to determine what caused the error so return false.
                //The only case where connection will be null should be External Connection Pooling so
                //returning false is ok as there is no connection management requirement
                    //If there is no ping sql then we can not perform the ping.
                return false;
            PreparedStatement statement = null;
            try{
                sessionForProfile.startOperationProfile(SessionProfiler.ConnectionPing);
                if (sessionForProfile.shouldLog(SessionLog.FINE, SessionLog.SQL)) {// Avoid printing if no logging required.
                     sessionForProfile.log(SessionLog.FINE, SessionLog.SQL, getPingSQL(), (Object[])null, null, false);
                statement = connection.prepareStatement(getPingSQL());
                ResultSet result = statement.executeQuery();
                result.close();
                statement.close();
            }catch (SQLException ex){
                try{
                    // Had to add this check because of NullPointerExceptions
                    // (maybe a bug?)
                    if(statement != null){
                        //try to close statement again in case the query or result.close() caused an exception.
                        statement.close();
                } catch (SQLException exception2) {
                    //ignore;
                return true;
            }finally{
                sessionForProfile.endOperationProfile(SessionProfiler.ConnectionPing);
            return false;
    }(As you can see, I had to override the <tt>wasFailureCommunicationBased()</tt> method as well, due to some unexpected NPE's. (A bug, perhaps?))
    This code does work. However, the performance is not very well. The first page comes relatively fast, but as you browse further in the table, each page comes slower. I assume this is because the counter() method has to be evaluated for each row in the table.
    I have to get the performance better and constant. Does anyone have an idea how to optimize this further?
    Best regards,
    Bart Kummel

  • [svn:fx-trunk] 12827: Removed the accessibility implementation for WindowAccImpl and WindowedApplicationAccImpl as they are likely not needed .

    Revision: 12827
    Revision: 12827
    Author:   [email protected]
    Date:     2009-12-10 19:03:29 -0800 (Thu, 10 Dec 2009)
    Log Message:
    Removed the accessibility implementation for WindowAccImpl and WindowedApplicationAccImpl as they are likely not needed.  In their current form they were preventing the accessibility of child components from being exposed.
    QE notes: none
    Doc notes: none
    Bugs: n/a
    Reviewer: Gordon
    Tests run: checkintests
    Is noteworthy for integration: no
    Removed Paths:
        flex/sdk/trunk/frameworks/projects/airspark/src/spark/accessibility/WindowAccImpl.as
        flex/sdk/trunk/frameworks/projects/airspark/src/spark/accessibility/WindowedApplicationAc cImpl.as

    Remember that Arch Arm is a different distribution, but we try to bend the rules and provide limited support for them.  This may or may not be unique to Arch Arm, so you might try asking on their forums as well.

  • JDBC for non-relational Databases.

    Hi All,
    correct me if I am wrong in my understanding,
    1. JDBC are a set of specifications (as interfaces etc..) which each
    vendor is expected to provide implementation.
    2. JDBC is for relationsla databases only (like oracle,MySQL etc..) it
    does not take into account the access to non-relational databases.
    3. If 2 is true, is there an equivalent of JDBC for non-relational
    databases?
    TIA.

    1. JDBC are a set of specifications (as interfaces etc..) which each
    vendor is expected to provide implementation.
    Broadly speaking, yes. It doesn't have to be the vendor that provides the implementation, and an ODBC driver (to be used via the JdbcOdbc bridge) is adequate if a native JDBC driver is not available.
    2. JDBC is for relationsla databases only (like oracle,MySQL etc..) it
    does not take into account the access to non-relational databases.
    It expects tabular results. Aside from that I don't think it mandates anything about the design of the underlying system. Certainly it's entirely agnostic about syntactic issues.
    For example, it can talk to Excel spreadsheets, via the JdbcOdbc bridge, and Excel is by no stretch of the imagination a relational database. IMS is not a relational database, but that has a JDBC driver.
    3. If 2 is true, is there an equivalent of JDBC for non-relational
    databases?
    2 is not true, and I'm not aware of any "non relational" database connection standard, probably for this very reason. There may well be vendor specific tools for talking to some systems.

  • Why a static class can implements a non-static interface?

    public class Test {
         interface II {
              public void foo();
         static class Impl implements II {
              public void foo() {
                   System.out.println("foo");
    }Why a static class can implements a non-static interface?
    In my mind, static members cann't "use" non-static members.

    Why a static class can implements a
    non-static interface?There's no such thing as a non-static member interface. They are always static even if you don't declare them as such.
    An interface defines, well, a public interface to be implemented. It doesn't matter whether it is implemented by a static nested class or by an inner class (or by any class at all). It wouldn't make sense to enforce that it should be one or the other, since the difference between a static and non-static class is surely an irrelevant detail to the client code of the interface.
    In my mind, static members cann't "use" non-static
    members.
    http://java.sun.com/docs/books/jls/third_edition/html/classes.html#246026
    Member interfaces are always implicitly static. It is permitted but not required for the declaration of a member interface to explicitly list the static modifier.

Maybe you are looking for