私はレストレットフレームワークに不慣れです。小さなJavaeeアプリケーションを作成しましたが、「見つかりません(404)」というエラーが表示されます。
public class MailServerApplication extends Application {
@オーバーライド
public Restlet createInboundRoot(){
ルーターrouter=new Router(getContext());
router.attach( "http:// localhost:8084 / accounts / {accountId} / mails / {mailId}"、MailServerResource.class);
リターンルーター;
}
}
////////////////////////////////
public class MailServerResource extends ServerResource {
@オーバーライド
保護された表現get()はResourceException{をスローします
DomRepresentationの結果=null;
試す {
結果=新しいDomRepresentation();
result.setIndenting(true);
ドキュメントdoc=result.getDocument();
ノードmailElt=doc.createElement( "mail");
doc.appendChild(mailElt);
ノードstatusElt=doc.createElement( "status");
statusElt.setTextContent( "received");
mailElt.appendChild(statusElt);
ノードsubjectElt=doc.createElement( "subject");
subjectElt.setTextContent( "メッセージから自己へ");
mailElt.appendChild(subjectElt);
ノードcontentElt=doc.createElement( "content");
contentElt.setTextContent( "Doh!");
mailElt.appendChild(contentElt);
} catch(IOException e){
}
結果を返します。
}
@オーバーライド
保護された表現put(表現表現)はResourceException{をスローします
DomRepresentation mailRep = new DomRepresentation(representation);
ドキュメントドキュメント;
試す {
doc = mailRep.getDocument();
要素mailElt=doc.getDocumentElement();
要素statusElt=(要素)mailElt
.getElementsByTagName( "status")。item(0);
要素subjectElt=(要素)mailElt.getElementsByTagName(
"件名").item(0);
要素contentElt=(要素)mailElt.getElementsByTagName(
"content")。item(0);
要素accountRefElt=(要素)mailElt.getElementsByTagName(
"accountRef")。item(0);
System.out.println( "ステータス:" + statusElt.getTextContent());
System.out.println( "件名:" + subjectElt.getTextContent());
System.out.println( "コンテンツ:" + contentElt.getTextContent());
System.out.println( "アカウントURI:" + accountRefElt.getTextContent());
} catch(IOException e){
新しいResourceException(e);をスローします。
}
nullを返します。
}
}
しかし、私がそれを実行/デバッグする場合。次のエラーが発生します。
スレッド「main」の例外が見つかりません(404)-見つかりません
org.restlet.resource.ClientResource.handle(ClientResource.java:858)で
org.restlet.resource.ClientResource.handle(ClientResource.java:763)で
org.restlet.resource.ClientResource.get(ClientResource.java:496)で
MailClient.main(MailClient.java:19)で
ありがとう。