الانتقال إلى المحتوى

مشكلتي ف عرض الصورة اللي مخزنة ف ال Db


Mohamed Barakat

Recommended Posts

انا عندي كود اللي يخزن الصورة ف 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
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) {
        }
        
        }}
 
رابط هذا التعليق
شارك

  • الردود 49
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

  • Mohamed Barakat

    22

  • sd4it

    15

  • tolba hamdi_133096

    5

  • eng_farieda

    4

 

انا عندي كود اللي يخزن الصورة ف 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
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

رابط هذا التعليق
شارك

انا ملاحظ ان اسم ال column في جملة ال select مختلف عن ال blob حاول تخليهم زي ما هما في الداتا بيز بالضبط

رابط هذا التعليق
شارك

طيب بص ونت بتعمل السيرفلت في الاول لاحظ بيبقي فيه خيارين configuration file (web.xml) و annotations خلي الخيار علي الاولي ممكن يكون الخطا هنا اما بالنسبه لكودك فهو صحيح

رابط هذا التعليق
شارك

ف مشكلة انا عامل جملة تطبعلي المتغير اللي ببعتو ل servlet والجملة بتطبع 

لكن الجملة اللي بطبع فيها المخزن ف ال قاعدة البيانات مابتطبعش اصلا 

رابط هذا التعليق
شارك

انا لما ثبت جملة ال الاستعلام اشتغلت... لكن لما اخلي جملة الاستعلام معتمدة على المتغير اللي بمررو الى السيرفلت بيديني null exception

ممكن حضرتك تبص على الكود المرفق في الصورة ممكن يكون ف حاجة 

 

post-170668-0-61776000-1508137178_thumb.png

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل



×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية