a4j-MediaOutput / Seam 2.1 : jpg lassen sich nur bis 5 KB anzeigen

janpaet

Mitglied
Hallo zusammen.
Ich habe da ein Problem mit der Ausgabe von jpg-Dateien über MediaOutput.

Bilder, die ich aus einer Datenbank lese, lassen sich bis zu einer Größe von ca. 5 KB problemlos darstellen. Sind sie größer, dann werden sie nicht angezeigt.

Hat jemand eine Idee, wo ich da ansetzen muss?

Vielen Dank und Grüße
Jan

Java:
public class PaintPicture implements IPaintPicture {

	public void paintImage(OutputStream out, Object data) throws IOException {
		out.write((byte[]) data);
	}
}


Java:
@Entity
@Name("news")
@Scope(ScopeType.SESSION)
@NamedQueries ({
	@NamedQuery(name  = "News.findAll",
				query = "SELECT n FROM News n")
})

@Table(name="webNews")

public class News implements Serializable{

	private static final long serialVersionUID = 1L;

	private int newsId; 
	private String newsDate;
	private String newsMessage;
	private String newsSubject;	
	private byte[] newsImage;
	private String pictureDirection;
	
	@Id
	public int getNewsId() {return newsId;}
	public void setNewsId(int newsId) {this.newsId = newsId;}
	
	@Lob @Basic(fetch = FetchType.EAGER)
	public byte[] getNewsImage() {return newsImage;}	
	public void setNewsImage(byte[] newsImage) {this.newsImage = newsImage;}
	
	public String getNewsDate() {return newsDate;}
	public void setNewsDate(String newsDate) {this.newsDate = newsDate;}
	
	public String getNewsMessage() {return newsMessage;}
	public void setNewsMessage(String newsMessage) {this.newsMessage = newsMessage;}
	
	public String getNewsSubject() {return newsSubject;}
	public void setNewsSubject(String newsSubject) {this.newsSubject = newsSubject;}
	
	public String getPictureDirection() {return pictureDirection;}
	public void setPictureDirection(String pictureDirection) {this.pictureDirection = pictureDirection;}

}

Java:
<h:dataTable value="#{newsList}" var="newsInfos">
     <h:column >
          <a4j:mediaOutput 
               element="img" 
               session="true"							
               cacheable="false" 
               createContent="#{paintPicture.paintImage}" 
               value="#{newsInfos.newsImage}"	
               mimeType="image/jpeg" />
     </h:column >
</h:dataTable>


Java:
@Stateless
@Name("newsDao")
@Scope(ScopeType.PAGE)

public class NewsDao implements INewsDao{
	
	@PersistenceContext	
	private EntityManager em;
	
	@Out(required=false) @SuppressWarnings("unused") 
	private List<News> newsList;

	@Factory("newsList") @SuppressWarnings("unchecked") 
	public void findNews(){
		newsList = em.createNamedQuery("News.findAll").getResultList();
	}	
}
 
Zuletzt bearbeitet:

janpaet

Mitglied
Es ist wahrscheinlich das falsche Forum.
Trotzdem vielen Dank, Gruß Jan

Hallo zusammen.
Ich habe da ein Problem mit der Ausgabe von jpg-Dateien über MediaOutput.

Bilder, die ich aus einer Datenbank lese, lassen sich bis zu einer Größe von ca. 5 KB problemlos darstellen. Sind sie größer, dann werden sie nicht angezeigt.

Hat jemand eine Idee, wo ich da ansetzen muss?

Vielen Dank und Grüße
Jan

Java:
public class PaintPicture implements IPaintPicture {

	public void paintImage(OutputStream out, Object data) throws IOException {
		out.write((byte[]) data);
	}
}


Java:
@Entity
@Name("news")
@Scope(ScopeType.SESSION)
@NamedQueries ({
	@NamedQuery(name  = "News.findAll",
				query = "SELECT n FROM News n")
})

@Table(name="webNews")

public class News implements Serializable{

	private static final long serialVersionUID = 1L;

	private int newsId; 
	private String newsDate;
	private String newsMessage;
	private String newsSubject;	
	private byte[] newsImage;
	private String pictureDirection;
	
	@Id
	public int getNewsId() {return newsId;}
	public void setNewsId(int newsId) {this.newsId = newsId;}
	
	@Lob @Basic(fetch = FetchType.EAGER)
	public byte[] getNewsImage() {return newsImage;}	
	public void setNewsImage(byte[] newsImage) {this.newsImage = newsImage;}
	
	public String getNewsDate() {return newsDate;}
	public void setNewsDate(String newsDate) {this.newsDate = newsDate;}
	
	public String getNewsMessage() {return newsMessage;}
	public void setNewsMessage(String newsMessage) {this.newsMessage = newsMessage;}
	
	public String getNewsSubject() {return newsSubject;}
	public void setNewsSubject(String newsSubject) {this.newsSubject = newsSubject;}
	
	public String getPictureDirection() {return pictureDirection;}
	public void setPictureDirection(String pictureDirection) {this.pictureDirection = pictureDirection;}

}

Java:
<h:dataTable value="#{newsList}" var="newsInfos">
     <h:column >
          <a4j:mediaOutput 
               element="img" 
               session="true"							
               cacheable="false" 
               createContent="#{paintPicture.paintImage}" 
               value="#{newsInfos.newsImage}"	
               mimeType="image/jpeg" />
     </h:column >
</h:dataTable>


Java:
@Stateless
@Name("newsDao")
@Scope(ScopeType.PAGE)

public class NewsDao implements INewsDao{
	
	@PersistenceContext	
	private EntityManager em;
	
	@Out(required=false) @SuppressWarnings("unused") 
	private List<News> newsList;

	@Factory("newsList") @SuppressWarnings("unchecked") 
	public void findNews(){
		newsList = em.createNamedQuery("News.findAll").getResultList();
	}	
}
 
C

chrissi_2010

Gast
Hi,

schau mal in deiner web.xml, da ist der Parameter maxRequestSize festzulegen. In meinem Falle steht er auf 2MByte.

<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
<init-param>
<param-name>createTempFiles</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>maxRequestSize</param-name>
<param-value>2000000</param-value>
</init-param>

</filter>
 

Ähnliche Java Themen

Neue Themen


Oben