0

この数週間、Maven pom.xml にモデル ライブラリ (これを参照) を使用した後、ConfiguratonContainer を pom.xml に書き込もうとしたときに、このエラーに飛びつきました。

モデルのjavadocには次のように書かれています:

public void setConfiguration(オブジェクト構成)

Set the configuration as DOM object.

Parameters:
    configuration - 

そこで、Document (org.w3c.dom.Document) と xml パーサーの標準 javax ライブラリを使用して xml を作成しました。あなたはコードを知っています(それはすべてのネットを介しています)が、ここに貼り付けます...

          DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder parser = factory.newDocumentBuilder();
            Document doc =parser.newDocument();

そして、Element 宣言や多数の appendChild などでコードを埋めます。

そして、それを機能させようとしました。うまくいかないようです。まずは使ってみた

plugin.setConfiguration(doc);

しかし、うまくいきませんでした。それから私は試しました

Obejct obj = doc;    
plugin.setConfiguration(obj);

しかし、うまくいきませんでした。

それから私は答えを求めてネットを検索し、推測しました...

うまくいきませんでした。

ネット全体でこのライブラリ (maven.model) を使用している人はほぼ 0 人です。それで、私は再び先生に助けを求めています。

私のエラーはどこですか?ライブラリのソースコードをダウンロードして、エラーの場所を確認しようとしましたが、問題ないようです (当然のことです)。参照用にスタックレースを追加します

java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DocumentImpl cannot be cast to org.codehaus.plexus.util.xml.Xpp3Dom
at org.apache.maven.model.io.xpp3.MavenXpp3Writer.writePlugin(MavenXpp3Writer.java:1472)
at org.apache.maven.model.io.xpp3.MavenXpp3Writer.writeBuild(MavenXpp3Writer.java:326)
at org.apache.maven.model.io.xpp3.MavenXpp3Writer.writeModel(MavenXpp3Writer.java:1093)
at org.apache.maven.model.io.xpp3.MavenXpp3Writer.write(MavenXpp3Writer.java:102)
at com.mapfre.mutua.PDA.model.GeneratePOM.createPOM(GeneratePOM.java:28)
at com.mapfre.mutua.PDA.prueba.MavenPOM.generatePOMWAR(MavenPOM.java:681)
at com.mapfre.mutua.PDA.prueba.GenerarPOMMapfreAction.execute(GenerarPOMMapfreAction.java:36)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
4

1 に答える 1

0

OK問題は解決しました(薬を服用している間は二度と何かを尋ねないことを約束します).

私の主な問題は、「構成をDOMオブジェクトとして設定する」ということを理解できなかったことです。(javadoc から) DOM の典型的なオブジェクトではなく、Xpp3Dom オブジェクトを参照していました。

時間を無駄にしてしまい、大変申し訳ありません。

ところで、これはある種のエラーにつながるようですが、より理解しやすいように javadoc を変更することをお勧めします。「構成をXpp3Domオブジェクトとして設定」のように。

于 2010-02-03T12:41:10.277 に答える