0

だからここに私の機能があります:

    public void writeUserToFile() {
    File newXmlFile = new File("res\\SavedShoppers.xml");
    try {
        ArrayList<User> oldUsers = null;
        if(newXmlFile.length() > 0){
            oldUsers = buildUsersFromFile(); // get old users
            // remove current user from old users list to eliminate duplicates
            for (int i = 0; i < oldUsers.size(); i++) {
                if (oldUsers.get(i).equals(this))
                    oldUsers.remove(i);
            }
        }
        OutputStream outputStream = new FileOutputStream(newXmlFile);
        XMLStreamWriter out = XMLOutputFactory.newInstance()
                .createXMLStreamWriter(
                        new OutputStreamWriter(outputStream, "utf-8"));
        out.writeStartDocument();
            out.writeStartElement("user");
            out.writeAttribute("userId", String.valueOf(getUserId()));
            out.writeAttribute("name", getName());
            for (ShoppingList sl : getShoppingLists()) {
                out.writeStartElement("shoppingList");
                out.writeAttribute("name", sl.getName());
                for (ListItem li : sl.getItems()) {
                    out.writeStartElement("listItem");
                    out.writeAttribute("name", li.getName());
                    out.writeAttribute("quantity",
                            String.valueOf(li.getQuantity()));
                    out.writeEndElement();
                }
                out.writeEndElement(); // shoppingList
            }
            out.writeEndElement(); // user
        out.writeEndDocument();
        out.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

だから私が達成しようとしているのは、ユーザーを XML ファイルに保存して後で引き出すことです。これは非常にシンプルな買い物リスト アプリで、買い物をするときにカートを作成して、買い物をしながら買い物を合計するのに役立ちます。ここに私が得ているエラーがあります:

java.lang.NoClassDefFoundError:javax/xml/stream/XMLOutputFactory

私がデバッグすると、この行で起こっています:

XMLStreamWriter out = XMLOutputFactory.newInstance().createXMLStreamWriter(new OutputStreamWriter(outputStrem, "utf-8"))

そして、私は何が間違っているのかわかりません...私はこれに数日間取り組んでいるので、アイデアがありません...どんな助けや方向性も素晴らしいでしょう!

ありがとう!ジョン

4

1 に答える 1

0

それは私のビルドパスにありました。私はjre7を使用していて、ビルドパスにそれがありましたが、ビルドパスにもjer5があったため、Javaは7ではなくjer5を探していました...そしてクラスは5に存在しません..したがってNoClassDefFoundエラー! :) わーい。誰も応答しなかったので、これは一般的な問題ではないと思います。将来、誰かが同じエラーを検索しているときにこの投稿を見つけることができることを願っています!

于 2013-07-17T16:21:06.060 に答える