どうしても hpi:upload にコケるよう。

( ゚Д゚ ) < だれかー!だれかー!


とりあえず,Rhinoから取ってきたjs.jarと,ついでにjaxenjaxen-1.1.1.jarを$JAVA_HOME/jre/lib/extに放り込んで再チャレンジするも,やっぱり'hpi:upload'でコケる。
Mavenに'-X -eオプション'つけてみたけど,たいしてログは出てこなかった。orz


ちなみに,

$ mvn -X -e hpi:hpi hpi:upload
  :
[DEBUG] Configuring mojo 'org.jvnet.hudson.tools:maven-hpi-plugin:1.18:upload' -->
[DEBUG]   (f) project = MavenProject: org.jvnet.hudson.plugins:emotional-hudson:1.02-SNAPSHOT @ /Users/mars/IdeaProjects/hudson/hudson/plugins/emotional-hudson/pom.xml
[DEBUG] -- end configuration --
[INFO] [hpi:upload]
[DEBUG] Loading /Users/mars/.java.net
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to upload the artifact

Embedded error: unable to log in as user masanobuimai Invalid XPath expression: '//DIV[@class='errormessage']'. Caused by: org/dom4j/Element
[INFO] ------------------------------------------------------------------------
[DEBUG] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to upload the artifact
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:564)
  :

なコケかたをする。


いかにもjava.netの認証に失敗してるのは明らかなんだけど,java.netが何を返しているのかだけでも知りたい。
えー,はいはい。.java.netにプロキシの設定書いて覗き見すりゃいいんですけどね。そのうち試すわ。


意外に道のりが険しい。>java.netへの公開。


(追記)エラーの場所は特定できた。
まず,スタックトレースはこれ。

[DEBUG] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to upload the artifact
  :
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
	... 16 more
Caused by: org.kohsuke.jnt.ProcessingException: unable to log in as user masanobuimai Invalid XPath expression: '//DIV[@class='errormessage']'. Caused by: org/dom4j/Element
	at org.kohsuke.jnt.Scraper.run(Scraper.java:31)
	at org.kohsuke.jnt.JavaNet.login(JavaNet.java:82)
	at org.kohsuke.jnt.JavaNet.connect(JavaNet.java:142)
	at org.kohsuke.jnt.JavaNet.connect(JavaNet.java:108)
	at org.jvnet.hudson.maven.plugins.hpi.AbstractJavaNetMojo.connect(AbstractJavaNetMojo.java:36)
	at org.jvnet.hudson.maven.plugins.hpi.UploadMojo.execute(UploadMojo.java:40)
	... 18 more
Caused by: org.dom4j.InvalidXPathException: Invalid XPath expression: '//DIV[@class='errormessage']'. Caused by: org/dom4j/Element
	at org.dom4j.xpath.DefaultXPath.parse(DefaultXPath.java:362)
	at org.dom4j.xpath.DefaultXPath.<init>(DefaultXPath.java:59)
	at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
	at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
	at org.dom4j.tree.AbstractNode.selectSingleNode(AbstractNode.java:183)
	at org.kohsuke.jnt.JNObject.checkError(JNObject.java:43)
	at org.kohsuke.jnt.JavaNet$1.scrape(JavaNet.java:89)
	at org.kohsuke.jnt.Scraper.run(Scraper.java:29)
	... 23 more

JavaNet.javaってのは,java.net tasks projectにあった。
javanettasks - JavaNet.java


さらに追いかけると,JNObject.javaのcheckError()でコケてて,その理由は以下のとおり。

protected final WebResponse checkError(WebResponse resp) throws SAXException, ProcessingException, IOException {
    if(resp.getResponseCode()!=200)
        throw new ProcessingException("request failed "+resp.getResponseMessage());

    Document dom = Util.getDom4j(resp);
    org.dom4j.Node errorNode = dom.selectSingleNode("//DIV[@class='errormessage']");
    if(errorNode!=null) {
        // ↓ これ
        // this happens for example when you request "http://nosuchproject.dev.java.net/"
        throw new ProcessingException(errorNode.getStringValue().trim());
    }
    return resp;
}


うーん。プロジェクト名の指定がマズい?でも試しにMavenのオプションに'-DprojectName=hudson'とか'-Dproject=hudson'とかやっても効果なかったんだよねぇ。
#一瞬,イケると思ったんだけど,スカだったか。


なんだろなー。Soyatte付属のJSSEとかもあやしんだほうがいいのかなー?