بتاريخ: 10 أكتوبر 20178 سنة comment_290704 انا عندي كود اللي يخزن الصورة ف DB شغال والصورة لاقيها ف الDB لكن المشكة ف عرص الصورة من الDB بواسطة الservlet .. بيطلعلي ال erorr دا <Oct 10, 2017 10:39:43,450 AM AST> <Error> <HTTP> <BEA-101017> <[servletContext@196074337[app:Application7 module:Application7-ViewController-context-root path:null spec-version:3.1], request: weblogic.servlet.internal.ServletRequestImpl@25b8fc6f[ GET /Application7-ViewController-context-root/showimage?pName=mohamed HTTP/1.1 Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 Accept: image/webp,image/apng,image/*,*/*;q=0.8 DNT: 1 Referer: http://127.0.0.1:7101/Application7-ViewController-context-root/faces/untitled1.jsf Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.8 ]] Root cause of ServletException. java.lang.NullPointerException at view.ShowImage.doGet(ShowImage.java:72) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260) Truncated. see log file for complete stacktrace > ودا كود الservlet بتاعي package view; import java.io.BufferedInputStream; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.sql.Blob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import javax.sql.DataSource; @WebServlet(name = "ShowImage", urlPatterns = { "/showimage" }) public class ShowImage extends HttpServlet { private static final String CONTENT_TYPE = "image/png"; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); OutputStream out = response.getOutputStream(); String personName = request.getParameter("pName"); Context conx = null; try { conx = new InitialContext(); } catch (NamingException e) { } DataSource ds = null; try { ds = (DataSource) conx.lookup("java:comp/env/jdbc/MohConnection1DS"); } catch (NamingException e) { } Connection conn= null; try { conn = ds.getConnection(); } catch (SQLException e) { } String sql = "select CARD_IMAGE from TABLE1 where PERSON_NAME = ?"; PreparedStatement st = null ; ResultSet rs = null ; try { st.setString(1,personName); st = conn.prepareStatement(sql); rs = st.executeQuery(); while (rs.next()){ Blob blob; blob = (Blob) rs.getBlob("Card_Image"); BufferedInputStream input = new BufferedInputStream(blob.getBinaryStream()); byte[] buffer = new byte[10240]; int imageReade ; while ((imageReade = input.read(buffer, 0, 10240))!= -1) { out.write(buffer, 0, imageReade); } } } catch (SQLException e) { } }} تقديم بلاغ
بتاريخ: 10 أكتوبر 20178 سنة comment_290706 انا عندي كود اللي يخزن الصورة ف DB شغال والصورة لاقيها ف الDB لكن المشكة ف عرص الصورة من الDB بواسطة الservlet .. بيطلعلي ال erorr دا <Oct 10, 2017 10:39:43,450 AM AST> <Error> <HTTP> <BEA-101017> <[servletContext@196074337[app:Application7 module:Application7-ViewController-context-root path:null spec-version:3.1], request: weblogic.servlet.internal.ServletRequestImpl@25b8fc6f[ GET /Application7-ViewController-context-root/showimage?pName=mohamed HTTP/1.1 Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 Accept: image/webp,image/apng,image/*,*/*;q=0.8 DNT: 1 Referer: http://127.0.0.1:7101/Application7-ViewController-context-root/faces/untitled1.jsf Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.8 ]] Root cause of ServletException. java.lang.NullPointerException at view.ShowImage.doGet(ShowImage.java:72) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260) Truncated. see log file for complete stacktrace > ودا كود الservlet بتاعي package view; import java.io.BufferedInputStream; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.sql.Blob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; import javax.sql.DataSource; @WebServlet(name = "ShowImage", urlPatterns = { "/showimage" }) public class ShowImage extends HttpServlet { private static final String CONTENT_TYPE = "image/png"; public void init(ServletConfig config) throws ServletException { super.init(config); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); OutputStream out = response.getOutputStream(); String personName = request.getParameter("pName"); Context conx = null; try { conx = new InitialContext(); } catch (NamingException e) { } DataSource ds = null; try { ds = (DataSource) conx.lookup("java:comp/env/jdbc/MohConnection1DS"); } catch (NamingException e) { } Connection conn= null; try { conn = ds.getConnection(); } catch (SQLException e) { } String sql = "select CARD_IMAGE from TABLE1 where PERSON_NAME = ?"; PreparedStatement st = null ; ResultSet rs = null ; try { st.setString(1,personName); st = conn.prepareStatement(sql); rs = st.executeQuery(); while (rs.next()){ Blob blob; blob = (Blob) rs.getBlob("Card_Image"); BufferedInputStream input = new BufferedInputStream(blob.getBinaryStream()); byte[] buffer = new byte[10240]; int imageReade ; while ((imageReade = input.read(buffer, 0, 10240))!= -1) { out.write(buffer, 0, imageReade); } } } catch (SQLException e) { } }} وضح الكود اللي انت كتبه في ال image source تقديم بلاغ
بتاريخ: 10 أكتوبر 20178 سنة comment_290708 انا ملاحظ ان اسم ال column في جملة ال select مختلف عن ال blob حاول تخليهم زي ما هما في الداتا بيز بالضبط تقديم بلاغ
بتاريخ: 10 أكتوبر 20178 سنة comment_290712 طيب بص ونت بتعمل السيرفلت في الاول لاحظ بيبقي فيه خيارين configuration file (web.xml) و annotations خلي الخيار علي الاولي ممكن يكون الخطا هنا اما بالنسبه لكودك فهو صحيح تقديم بلاغ
بتاريخ: 10 أكتوبر 20178 سنة كاتب الموضوع comment_290714 مديني warning موش عارف دا ليه علاقة ولا لا تقديم بلاغ
بتاريخ: 10 أكتوبر 20178 سنة كاتب الموضوع comment_290726 سطر 72 ;("blob = (Blob) rs.getBlob("CARD_IMAGE تقديم بلاغ
بتاريخ: 12 أكتوبر 20178 سنة كاتب الموضوع comment_290785 ليست null مكتوب العمود الخاص بالصورة بجانب الاسم (BLOB) وليست (NULL) تقديم بلاغ
بتاريخ: 15 أكتوبر 20178 سنة كاتب الموضوع comment_290844 ف مشكلة انا عامل جملة تطبعلي المتغير اللي ببعتو ل servlet والجملة بتطبع لكن الجملة اللي بطبع فيها المخزن ف ال قاعدة البيانات مابتطبعش اصلا تقديم بلاغ
بتاريخ: 15 أكتوبر 20178 سنة comment_290847 كما ذكرت لك سابقاً اطبع القيمة وتأكد أنها ليست null تقديم بلاغ
بتاريخ: 16 أكتوبر 20178 سنة كاتب الموضوع comment_290853 انا عملت جملة تطبع القيمة بس الجملة مابتتنفذش تقديم بلاغ
بتاريخ: 16 أكتوبر 20178 سنة comment_290854 حسناً قم بإضافة جملة طباعة بعد كل خطوة لتعرف الخطوة التي توقف التنفيذ عندها تقديم بلاغ
بتاريخ: 16 أكتوبر 20178 سنة كاتب الموضوع comment_290856 انا لما ثبت جملة ال الاستعلام اشتغلت... لكن لما اخلي جملة الاستعلام معتمدة على المتغير اللي بمررو الى السيرفلت بيديني null exception ممكن حضرتك تبص على الكود المرفق في الصورة ممكن يكون ف حاجة تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.