Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

MAF: Take picture and upload/The exception contained within MappableContainerException could not be

OmileApr 16 2015

Hi all, i am followed this link provided by Byron Z-Oracle http://sanjeev-technology.blogspot.in/2015/03/maf-take-picture-and-upload.html .it worked because image file was saved in one of a folder in directory C.

          My (Json)Restful webserivce runs on external  server  (glassfish 3 .2).I tried using   the  same approch in saving the image file to MYSQL database ,but when ever i try to insert  image file and FullName through  the  MAF app. The glassfish server throws these error:..........

SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of Entity.Profile out of START_ARRAY token

at [Source: org.apache.catalina.connector.CoyoteInputStream@262d1e47; line: 1, column: 1]

at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)

at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:219)

at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:212)

at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromArray(BeanDeserializer.java:869)

at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:597)

at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2695)

at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)

at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)

at com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy.readFrom(JacksonProviderProxy.java:139)

at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:474)

at com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)

at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:46)

at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:153)

at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$VoidOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:166)

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:708)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:722)

WARNING: StandardWrapperValve[ServletAdaptor]: PWC1406: Servlet.service() for servlet ServletAdaptor threw exception

org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of Entity.Profile out of START_ARRAY token

at [Source: org.apache.catalina.connector.CoyoteInputStream@262d1e47; line: 1, column: 1]

at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)

at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:219)

at org.codehaus.jackson.map.deser.StdDeserializationContext.mappingException(StdDeserializationContext.java:212)

at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromArray(BeanDeserializer.java:869)

at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:597)

at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2695)

at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)

at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)

at com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy.readFrom(JacksonProviderProxy.java:139)

at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:474)

at com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)

at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:46)

at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:153)

at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$VoidOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:166)

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:708)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:722)

ENTITY CLASS :

@Entity

@Table(name = "profile", catalog = "Display", schema = "")

@XmlRootElement

@NamedQueries({

@NamedQuery(name = "Profile.findAll", query = "SELECT p FROM Profile p"),

@NamedQuery(name = "Profile.findById", query = "SELECT p FROM Profile p WHERE p.id = :id"),

@NamedQuery(name = "Profile.findByPic", query = "SELECT p FROM Profile p WHERE p.pic = :pic"),

@NamedQuery(name = "Profile.findByFullNamel", query = "SELECT p FROM Profile p WHERE p.fullNamel = :fullNamel")})

public class Profile implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

@Basic(optional = false)

@Column(name = "Id")

private Integer id;

@Size(max = 500)

@Column(name = "Pic")

private String pic;

@Size(max = 45)

@Column(name = "fullNamel")

private String fullNamel;

public Profile() {

}

public Profile(Integer id) {

    this.id = id;

}

public Integer getId() {

    return id;

}

public void setId(Integer id) {

    this.id = id;

}

public String getPic() {

    return pic;

}

public void setPic(String pic) {

    this.pic = pic;

}

public String getFullNamel() {

    return fullNamel;

}

public void setFullNamel(String fullNamel) {

    this.fullNamel = fullNamel;

}

@Override

public int hashCode() {

    int hash = 0;

    hash += (id != null ? id.hashCode() : 0);

    return hash;

}

@Override

public boolean equals(Object object) {

    // TODO: Warning - this method won't work in the case the id fields are not set

    if (!(object instanceof Profile)) {

        return false;

    }

    Profile other = (Profile) object;

    if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {

        return false;

    }

    return true;

}

@Override

public String toString() {

    return "Entity.Profile\[ id=" + id + " \]";

}

}

JAXBContextResolver CLASS:

@Provider

public class JAXBContextResolver implements ContextResolver<JAXBContext> {

JAXBContext jaxbContext;

private final Class\[\] types = {Entity.Profile.class};

public JAXBContextResolver() throws Exception {

    this.jaxbContext =

            new JSONJAXBContext(JSONConfiguration.natural().build(), types);

}

@Override

public JAXBContext getContext(Class\<?> objectType) {

    for (Class type : types) {

        if (type == objectType) {

            return jaxbContext;

        }

    }

    return null;

}

}

abstract AbstractFacade CLASS:

public abstract class AbstractFacade<T> {

private Class\<T> entityClass;

public AbstractFacade(Class\<T> entityClass) {

    this.entityClass = entityClass;

}

protected abstract EntityManager getEntityManager();

public void create(T entity) {

        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

Validator validator = factory.getValidator();

Set\<ConstraintViolation\<T>> constraintViolations = validator.validate(entity);

if(constraintViolations.size() > 0){

    Iterator\<ConstraintViolation\<T>> iterator = constraintViolations.iterator();

    while(iterator.hasNext()){

        ConstraintViolation\<T> cv = iterator.next();

        System.err.println(cv.getRootBeanClass().getName()+"."+cv.getPropertyPath() + " " +cv.getMessage());

        JsfUtil.addErrorMessage(cv.getRootBeanClass().getSimpleName()+"."+cv.getPropertyPath() + " " +cv.getMessage());

    }

}else{

    getEntityManager().persist(entity);

}

    //getEntityManager().persist(entity);

}

public void edit(T entity) {

    getEntityManager().merge(entity);

}

public void remove(T entity) {

    getEntityManager().remove(getEntityManager().merge(entity));

}

public T find(Object id) {

    return getEntityManager().find(entityClass, id);

}

public List\<T> findAll() {

    javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();

    cq.select(cq.from(entityClass));

    return getEntityManager().createQuery(cq).getResultList();

}

public List\<T> findRange(int\[\] range) {

    javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();

    cq.select(cq.from(entityClass));

    javax.persistence.Query q = getEntityManager().createQuery(cq);

    q.setMaxResults(range\[1\] - range\[0\] + 1);

    q.setFirstResult(range\[0\]);

    return q.getResultList();

}

public int count() {

    javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();

    javax.persistence.criteria.Root\<T> rt = cq.from(entityClass);

    cq.select(getEntityManager().getCriteriaBuilder().count(rt));

    javax.persistence.Query q = getEntityManager().createQuery(cq);

    return ((Long) q.getSingleResult()).intValue();

}

}

JSON RESTFULL CLASS:

@Stateless

@Path("entity.profile")

public class ProfileFacadeREST extends AbstractFacade<Profile> {

@PersistenceContext(unitName = "OracleMobilePU")

private EntityManager em;

public ProfileFacadeREST() {

    super(Profile.class);

}

@POST

@Consumes({ "application/json"})

 @Path("/pics")

@Override

public void create(Profile entity){        

                 try {

           FileOutputStream in = new FileOutputStream("ok.ser");

          ObjectOutputStream ok= new ObjectOutputStream(in);

          ok.writeObject(entity);

          ok.close();

         FileInputStream ins=new FileInputStream("ok.ser");

         ObjectInputStream e=new ObjectInputStream(ins);

         entity=(Profile)e.readObject();

            if(entity!=null){

             super.create(entity);

           }

        }catch (IOException | ClassNotFoundException e){

       e.printStackTrace();

  }

}

@Override

protected EntityManager getEntityManager() {

    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.

}

@PUT

@Path("{id}")

@Consumes({ "application/json"})

public void edit(@PathParam("id") Integer id, Profile entity) {

    super.edit(entity);

}

@DELETE

@Path("{id}")

public void remove(@PathParam("id") Integer id) {

    super.remove(super.find(id));

}

@GET

@Path("{id}")

@Produces({ "application/json"})

public Profile find(@PathParam("id") Integer id) {

    return super.find(id);

}

@GET

@Override

@Produces({ "application/json"})

public List\<Profile> findAll() {

    return super.findAll();

}

@GET

@Path("{from}/{to}")

@Produces({ "application/json"})

public List\<Profile> findRange(@PathParam("from") Integer from, @PathParam("to") Integer to) {

    return super.findRange(new int\[\]{from, to});

}

@GET

@Path("count")

@Produces("text/plain")

public String countREST() {

    return String.valueOf(super.count());

}

}

this is emulator 's error report after the the insertion of the image :

mobile.gif

Comments
Post Details
Added on Apr 16 2015
0 comments
807 views