restlet 프레임 워크를 처음 사용합니다. 나는 작은 자바 EE 애플리케이션을 생성하지만 나에게 오류를 제공 한restlet에서 "Not Found (404)"오류가 발생했습니다.
public class MailServerApplication extends Application { @Override public Restlet createInboundRoot() { Router router = new Router(getContext()); router.attach("http://localhost:8084/accounts/{accountId}/mails/{mailId}", MailServerResource.class); return router; } } //////////////////////////////// public class MailServerResource extends ServerResource { @Override protected Representation get() throws ResourceException { DomRepresentation result = null; try { result = new DomRepresentation(); result.setIndenting(true); Document doc = result.getDocument(); Node mailElt = doc.createElement("mail"); doc.appendChild(mailElt); Node statusElt = doc.createElement("status"); statusElt.setTextContent("received"); mailElt.appendChild(statusElt); Node subjectElt = doc.createElement("subject"); subjectElt.setTextContent("Message to self"); mailElt.appendChild(subjectElt); Node contentElt = doc.createElement("content"); contentElt.setTextContent("Doh!"); mailElt.appendChild(contentElt); } catch (IOException e) { } return result; } @Override protected Representation put(Representation representation) throws ResourceException { DomRepresentation mailRep = new DomRepresentation(representation); Document doc; try { doc = mailRep.getDocument(); Element mailElt = doc.getDocumentElement(); Element statusElt = (Element) mailElt .getElementsByTagName("status").item(0); Element subjectElt = (Element) mailElt.getElementsByTagName( "subject").item(0); Element contentElt = (Element) mailElt.getElementsByTagName( "content").item(0); Element accountRefElt = (Element) mailElt.getElementsByTagName( "accountRef").item(0); System.out.println("Status: " + statusElt.getTextContent()); System.out.println("Subject: " + subjectElt.getTextContent()); System.out.println("Content: " + contentElt.getTextContent()); System.out.println("Account URI: " + accountRefElt.getTextContent()); } catch (IOException e) { throw new ResourceException(e); } return null; } }
"(404) 찾을 수 없습니다"하지만 난/디버그를 실행합니다. 다음과 같은 오류가 발생합니다 :
Exception in thread "main" Not Found (404) - Not Found at org.restlet.resource.ClientResource.handle(ClientResource.java:858) at org.restlet.resource.ClientResource.handle(ClientResource.java:763) at org.restlet.resource.ClientResource.get(ClientResource.java:496) at MailClient.main(MailClient.java:19)
감사합니다.
이 오류는 서버 페이지를 찾을 수 없음을 의미합니다. 올바른 URL을 입력했는지, 액세스 할 수 있는지 확인하십시오. – AbdullahC
액세스에 사용하는 URL은 무엇입니까? 또한, 당신의'router.attach()'콜은 아마 모든 http : // host : port를 지정해서는 안됩니다. 대신 router.attach ("/ accounts/{accountId}/mails/{mailId}")'를 사용해보십시오. –