[ 
https://issues.apache.org/jira/browse/AXIS2-5609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13792370#comment-13792370
 ] 

Ravivarma edited comment on AXIS2-5609 at 10/11/13 5:52 AM:
------------------------------------------------------------

Hi Sagara,

I used standard java types as you said. But the issue still remains same.
Can you plz share any working code to consume the blob object. Here is the code 
I written. 

Image pojo class:

package com.apps.emp;

import java.sql.Blob;

public class ImageData {
        private int id;
        private Blob photo;
        private String name;
        public int getId() {
                return id;
        }
        public void setId(int id) {
                this.id = id;
        }
        public Blob getPhoto() {
                return photo;
        }
        public void setPhoto(Blob photo) {
                this.photo = photo;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
}

DB service class :

public ImageData getImage(int id) {
        Connection conn = (Connection) 
MessageContext.getCurrentMessageContext().getProperty(DBServiceLifeCycle.DB_CONNECTION);
        if(conn !=null) {
            String SQL = "SELECT ID, PHOTO_NAME, PHOTO FROM RAVI.IMAGES WHERE 
ID=?";
            try {
                PreparedStatement statement = conn.prepareStatement(SQL);
                statement.setInt(1, id);
                ResultSet result = statement.executeQuery();
                if (result.next()) {
                        ImageData imagedata = new ImageData();
                        
                        imagedata.setId((int)result.getInt("ID"));
                        imagedata.setName(result.getString("PHOTO_NAME"));
                        imagedata.setPhoto(result.getBlob("PHOTO"));            
 
                                       
                    return imagedata;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

Solution is much critical for my task. Thanks in advance. 


was (Author: ravivarma434):
Hi Sagara,

I used standard java times as you said. But the issue still remains same.
Can you plz share any working code to consume the blob object. Here is the code 
I written. 

Image pojo class:

package com.apps.emp;

import java.sql.Blob;

public class ImageData {
        private int id;
        private Blob photo;
        private String name;
        public int getId() {
                return id;
        }
        public void setId(int id) {
                this.id = id;
        }
        public Blob getPhoto() {
                return photo;
        }
        public void setPhoto(Blob photo) {
                this.photo = photo;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
}

DB service class :

public ImageData getImage(int id) {
        Connection conn = (Connection) 
MessageContext.getCurrentMessageContext().getProperty(DBServiceLifeCycle.DB_CONNECTION);
        if(conn !=null) {
            String SQL = "SELECT ID, PHOTO_NAME, PHOTO FROM RAVI.IMAGES WHERE 
ID=?";
            try {
                PreparedStatement statement = conn.prepareStatement(SQL);
                statement.setInt(1, id);
                ResultSet result = statement.executeQuery();
                if (result.next()) {
                        ImageData imagedata = new ImageData();
                        
                        imagedata.setId((int)result.getInt("ID"));
                        imagedata.setName(result.getString("PHOTO_NAME"));
                        imagedata.setPhoto(result.getBlob("PHOTO"));            
 
                                       
                    return imagedata;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

Solution is much critical for my task. Thanks in advance. 

> [ERROR] org.apache.axis2.AxisFault: Mapping qname not fond for the package: 
> oracle.sql
> --------------------------------------------------------------------------------------
>
>                 Key: AXIS2-5609
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5609
>             Project: Axis2
>          Issue Type: Bug
>          Components: databinding, wsdl
>    Affects Versions: 1.6.2
>         Environment: Tomcat 7.0.42, Axis2 1.6.2, JDK 1.6, Oracle 11g
>            Reporter: Ravivarma
>            Priority: Critical
>
> I implemented a SOAP service using Axis2 webservices which talks with the 
> database and retrieve the values. I have used JDBC PreparedStatement, POJO 
> java classes to generate the service. And list of fields in the table are 
> name, id, designation, email, image. I inserted the values in the table. WSDL 
> generated perfectly and able to see the values when I hit the service without 
> of image field value (image =null). When I add the BLOB object to image in 
> the table, then its giving databinding error as shown below.
> [ERROR] org.apache.axis2.AxisFault: Mapping qname not fond for the package: 
> oracle.sql
> java.lang.RuntimeException: org.apache.axis2.AxisFault: Mapping qname not 
> fond for the package: oracle.sql
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:264)
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:117)
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:117)
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPullParser(BeanUtil.java:72)
>       at 
> org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.processProperties(ADBXMLStreamReaderImpl.java:993)
>       at 
> org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderImpl.next(ADBXMLStreamReaderImpl.java:850)
>       at org.apache.axis2.util.StreamWrapper.next(StreamWrapper.java:71)
>       at 
> org.apache.axiom.om.impl.builder.StAXOMBuilder.parserNext(StAXOMBuilder.java:668)
>       at 
> org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:214)
>       at 
> org.apache.axiom.om.impl.llom.OMSerializableImpl.build(OMSerializableImpl.java:75)
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.build(OMElementImpl.java:776)
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.detach(OMElementImpl.java:754)
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:316)
>       at 
> org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:237)
>       at 
> org.apache.axis2.rpc.receivers.RPCUtil.processResponse(RPCUtil.java:105)
>       at 
> org.apache.axis2.rpc.receivers.RPCUtil.processResponseAsDocLitWrapped(RPCUtil.java:456)
>       at 
> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:155)
>       at 
> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>       at 
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
>       at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
>       at 
> org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:144)
>       at 
> org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:139)
>       at 
> org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:837)
>       at 
> org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:273)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
>       at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>       at 
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
>       at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
>       at 
> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>       at java.lang.Thread.run(Thread.java:662)
> Caused by: org.apache.axis2.AxisFault: Mapping qname not fond for the 
> package: oracle.sql
>       at 
> org.apache.axis2.databinding.utils.BeanUtil.getPropertyQnameList(BeanUtil.java:131)
>       ... 41 more
> ============================================================================
> Below insert statement is working fine:
> insert into EMPINFO (EMP_NAME, EMP_ID, DESIGNATION, EMAIL_ID, IMAGE) values 
> ('Ravi',1205,'Lead','[email protected]',NULL);
> Below insert statement giving binding error:
> insert into EMPINFO (EMP_NAME, EMP_ID, DESIGNATION, EMAIL_ID, IMAGE) values 
> ('Ravi',1205,'Lead','[email protected]',to_blob(rawtohex('C:/Users/ravi.gandla/Desktop/EmpolyeeData/ravi.jpg')));
> ====================================================================
> Java code part of the service is here:
> public EmpData getEmpData(int empid) {
>         Connection conn = (Connection) 
> MessageContext.getCurrentMessageContext().getProperty(DBServiceLifeCycle.DB_CONNECTION);
>         if(conn !=null) {
>             String SQL = "SELECT EMP_NAME, EMP_ID, DESIGNATION,EMAIL_ID, 
> IMAGE FROM EMPINFO WHERE EMP_ID=?";
>             try {
>                 PreparedStatement statement = conn.prepareStatement(SQL);
>                 statement.setInt(1, empid);
>                 ResultSet result = statement.executeQuery();
>                 if (result.next()) {
>                       EmpData empdata = new EmpData();
>                       empdata.setEmpname(result.getString("EMP_NAME"));
>                       empdata.setEmpid((int)result.getInt("EMP_ID"));
>                       empdata.setDesignation(result.getString("DESIGNATION"));
>                       empdata.setImage(result.getBlob("EMP_IMAGE"));          
>    
>                                      
>                     return empdata;
>                 }
>             } catch (SQLException e) {
>                 e.printStackTrace();
>             }
>         }
>         return null;
>     }



--
This message was sent by Atlassian JIRA
(v6.1#6144)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to