ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
250
250
EMPFEHLEN
-
Hallo,
ich bin ziemlich neu im Bereich Webprogrammierung und ich habe ein Problem mit Restful bei dem ich nicht mehr weiter weiß und keine Lösung finde. Ich bekomme den folgenden Fehler der durch die rot markierte Zeile verursacht wird:
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("{id}")
public DEmail read(@PathParam("id") long id) {
return em.find(DEmail.class, id);
}
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
Aug 16, 2011 11:07:17 AM com.sun.jersey.api.core.WebAppResourceConfig init Information: Scanning for root resource and provider classes in the Web app resource paths: /WEB-INF/lib /WEB-INF/classes Aug 16, 2011 11:07:18 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses Information: Root resource classes found: class uds.web.admin.server.EmailService Aug 16, 2011 11:07:18 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses Information: Provider classes found: class org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider class org.codehaus.jackson.jaxrs.JacksonJsonProvider class org.codehaus.jackson.jaxrs.JsonMappingExceptionMapper class org.codehaus.jackson.jaxrs.JsonParseExceptionMapper Aug 16, 2011 11:07:18 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate Information: Initiating Jersey application, version 'Jersey: 1.8 06/24/2011 12:17 PM' [COLOR="red"]Aug 16, 2011 11:07:37 AM com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException Schwerwiegend: The RuntimeException could not be mapped to a response, re-throwing to the HTTP container[/COLOR] java.lang.NullPointerException at uds.web.admin.server.EmailService.read(EmailService.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469) at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349) at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339) at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537) at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
Die Klasse DEmail sieht wie folgt aus:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
package uds.web.admin.server; import java.io.Serializable; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; import java.util.Date; import javax.persistence.*; import static javax.persistence.GenerationType.SEQUENCE; import static javax.persistence.TemporalType.TIMESTAMP; import javax.xml.bind.annotation.XmlRootElement; /** * Entity implementation class for Entity: DEmail * */ @Entity @XmlRootElement @Table(name = "email_sended") @NamedQuery(name = "findEmails", query = "SELECT e FROM DEmail e") public class DEmail implements Serializable { @Id @GeneratedValue( strategy = SEQUENCE ) @Column(columnDefinition="SERIAL") private Integer email_id; @Column private String ToRecipients; @Column private String CcRecipients; @Column private String BccRecipients; @Column private String headline; @Column(columnDefinition="TEXT") private String email_text; @Column private String email_type; @Column private Boolean selfCopy; @Column private String creator; @Column @Temporal( TIMESTAMP ) private Date creations_date; private static final long serialVersionUID = 1L; public DEmail() { super(); } public Integer getEmail_id() { return this.email_id; } public void setEmail_id(Integer email_id) { this.email_id = email_id; } public String getToRecipients() { return this.ToRecipients; } public void setToRecipients(String ToRecipients) { this.ToRecipients = ToRecipients; } public String getCcRecipients() { return this.CcRecipients; } public void setCcRecipients(String CcRecipients) { this.CcRecipients = CcRecipients; } public String getBccRecipients() { return this.BccRecipients; } public void setBccRecipients(String BccRecipients) { this.BccRecipients = BccRecipients; } public String getHeadline() { return this.headline; } public void setHeadline(String headline) { this.headline = headline; } public String getText() { return this.email_text; } public void setText(String text) { this.email_text = text; } public String getEmail_type() { return this.email_type; } public void setEmail_type(String email_type) { this.email_type = email_type; } public Boolean getSelfCopy() { return this.selfCopy; } public void setSelfCopy(Boolean selfCopy) { this.selfCopy = selfCopy; } public String getCreator() { return this.creator; } public void setCreator(String creator) { this.creator = creator; } public Date getCreations_date() { return this.creations_date; } public void setCreations_date(Date creations_date) { this.creations_date = creations_date; } }
Meine Providerklasse sieht wie folgt aus:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
package uds.web.admin.server; import java.util.List; import javax.ejb.LocalBean; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContextType; import javax.persistence.Query; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; // [url]http://localhost:8888/rest/emails/1[/url] /** * Session Bean implementation class EmailService */ @Stateless @LocalBean @Path("/emails") public class EmailService { /** * Default constructor. */ public EmailService() { } @PersistenceContext(unitName="EmailService", type=PersistenceContextType.TRANSACTION) EntityManager em; @POST @Consumes(MediaType.APPLICATION_XML) public void create(DEmail email) { em.persist(email); } @GET @Produces(MediaType.APPLICATION_XML) @Path("{id}") public DEmail read(@PathParam("id") long id) { return em.find(DEmail.class, id); } @GET @Produces(MediaType.APPLICATION_XML) @Path("readAll") public List<DEmail> readAll(){ Query query = em.createNamedQuery("findEmails"); List<DEmail> email = query.getResultList(); System.out.println("email : "+email); return email; } }
Meine web.xml:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- Default page to serve --> <welcome-file-list> <welcome-file>GWebAdmin.html</welcome-file> </welcome-file-list> <display-name>Emails</display-name> <servlet> <servlet-name>Jersey Web Application</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Web Application</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> <persistence-context-ref> <persistence-context-ref-name>persistence/em</persistence-context-ref-name> <persistence-unit-name>EmailService</persistence-unit-name> </persistence-context-ref> </web-app>
Geändert von Andyx1975 (16.08.11 um 14:57 Uhr)
-
16.08.11 14:54 #2SE Tutorials.de Gastzugang
Das gehört eingetlich hier rein -> http://www.tutorials.de/enterprise-j...2ee-spring-co/
Nutze auch für reine Java-Source-Files die Java-Tags *siehe Signatur* anstatt die Code-Tags da dies die Lesbarkeit deutlich erhöt.
-
ok vielen dank...ich habe es geändert. Kann keiner weiter helfen?
-
16.08.11 15:11 #4SE Tutorials.de Gastzugang
Das glaub ich jetzt nicht ... du hast jetzt nicht wirklich einen zweiten Thread eröffnet oder ?
Das ist bei uns hier nicht gerne gesehen und kann mit Verwarnungen geahndet werden. Als Tipp für die Zukunft : erst überlegen welches Forum das richtige sein könnte und wenns doch falsch ist einfach auf das Verschieben durch einen Mod warten und nicht quer durchs Forum verteilt Multi-Threads eröffnen.
Ähnliche Themen
-
Error in HTTP operation beim KXML parsen
Von NR76 im Forum Handy, PDA & mobile WeltAntworten: 0Letzter Beitrag: 25.04.08, 09:41 -
HTTP Error WebBrowser
Von hagbard_celine im Forum .NET Web und KommunikationAntworten: 0Letzter Beitrag: 25.10.06, 04:37 -
Http/1.1 +500 Internal Server Error
Von ksk im Forum .NET CaféAntworten: 6Letzter Beitrag: 11.07.06, 15:39 -
HTTP 500 error bei PHP-Scripts
Von hans_schmid im Forum PHPAntworten: 5Letzter Beitrag: 15.05.04, 00:37 -
HTTP Header Parsen um Error Code zu ermitteln
Von finsh im Forum PHPAntworten: 0Letzter Beitrag: 10.04.03, 14:26





Zitieren
Login





