首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javaPOS将库添加到项目

javaPOS将库添加到项目
EN

Stack Overflow用户
提问于 2012-03-06 04:00:20
回答 2查看 4.5K关注 0票数 1

我刚刚试着用我买的epson tm-t20打印机运行我得到的示例java文件。这些类应该可以运行,但它们总是给我错误。我已经看了8个多小时了,现在我真的很沮丧。这是它抛给我的一个异常:

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/xerces/parsers/DOMParser
at jpos.config.simple.xml.AbstractXercesRegPopulator.<init>(Unknown Source)
at jpos.config.simple.xml.XercesRegPopulator.<init>(Unknown Source)
at jpos.config.simple.xml.SimpleXmlRegPopulator.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at jpos.loader.simple.SimpleServiceManager.initRegPopulator(Unknown Source)
at jpos.loader.simple.SimpleServiceManager.initEntryRegistry(Unknown Source)
at jpos.loader.simple.SimpleServiceManager.init(Unknown Source)
at jpos.loader.simple.SimpleServiceManager.<init>(Unknown Source)
at jpos.loader.JposServiceLoader.<clinit>(Unknown Source)
at jpos.BaseJposControl.open(Unknown Source)
at postest.Step1Frame.processWindowEvent(Step1Frame.java:83)
at java.awt.Window.processEvent(Window.java:2003)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

下面是我看过的示例代码:

代码语言:javascript
复制
POSPrinterControl19 ptr = (POSPrinterControl19)new POSPrinter();


JPanel contentPane;
JPanel jPanel_reciept = new JPanel();
TitledBorder titledBorder1;
GridBagLayout gridBagLayout1 = new GridBagLayout();
GridBagLayout gridBagLayout2 = new GridBagLayout();
JButton jButton_Print = new JButton();

/**Construct "Frame"*/
public Step1Frame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
        jbInit();
    }
    catch(Exception e) {
        e.printStackTrace();
    }
}

/**Form the component*/
private void jbInit() throws Exception  {
    //setIconImage(Toolkit.getDefaultToolkit().createImage(Step1Frame.class.getResource("[Your Icon]")));
    contentPane = (JPanel) this.getContentPane();
    titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(134, 134, 134)),"Receipt");
    contentPane.setLayout(gridBagLayout1);
    this.setSize(new Dimension(300, 180));
    this.setTitle("Step 1  Print \"Hello JavaPOS\"");
    jPanel_reciept.setLayout(gridBagLayout2);
    jPanel_reciept.setBorder(titledBorder1);
    jButton_Print.setText("Print");
    jButton_Print.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            jButton_Print_actionPerformed(e);
        }
    });
    contentPane.add(jPanel_reciept, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(15, 0, 0, 0), 20, 20));
    jPanel_reciept.add(jButton_Print, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 10, 5, 10), 130, 0));
}

/**
 * Outline     The processing code required in order to enable
 *            or to disable use of service is written here.
 * @exception JposException  This exception is fired toward the failure of
 *                          the method which JavaPOS defines.
 */
/**When the window was closed*/
protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
        this.closing();
    }
    /**When the window open*/
    else if (e.getID() == WindowEvent.WINDOW_OPENED) {
        // JavaPOS's code for Step1
        try {
            //Open the device.
            //Use the name of the device that connected with your computer.
                            //ptr.clearPrintArea();
            ptr.open("POSPrinter");

            //Get the exclusive control right for the opened device.
            //Then the device is disable from other application.
            ptr.claim(1000);

            //Enable the device.
            ptr.setDeviceEnabled(true);
        }
        catch(JposException ex) {
        }
    }
    // JavaPOS's code for Step1--END
}

//***********************Button*************************************************
/**
 * Outline      The code for using the most standard method "PrintNormal"
 *             to print is described.
 */
void jButton_Print_actionPerformed(ActionEvent e) {
    // JavaPOS's code for Step1
    try{
        //printNormal(int station, String data)
        //A string is sent by using the method "printNormal", and it is printed.
        // "\n" is the standard code for starting a new line.
        // When the end of the line have no "\n",printing by
        //  using the method "printNormal" doesn't start, may be.
        ptr.printNormal(POSPrinterConst.PTR_S_RECEIPT,"Hello JavaPOS\n");
    }
    catch(JposException ex){
    }
    // JavaPOS's code for Step1--END
}

//***********************Method*************************************************
/**
 * Outline     The code to finish a service.
 */
void closing(){
    // JavaPOS's code for Step1
    try{
        //Cancel the device.
        ptr.setDeviceEnabled(false);

        //Release the device exclusive control right.
        ptr.release();

        //Finish using the device.
        ptr.close();
    }
    catch(JposException ex){
    }
    // JavaPOS's code for Step1--END
    System.exit(0);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-06 04:07:48

您必须将一些额外的依赖库添加到项目类路径中,其中一个似乎是apache xerces XML解析器,因此基本上您必须将该jar库添加到类路径中。

您可以找到apache xerces XML解析器here

票数 2
EN

Stack Overflow用户

发布于 2012-03-06 04:19:29

对于我来说,缺少org/apache/xerces/parsers/DOMParser类。你可以从maven repository xercesImpl.jar下载

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9573122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档