Glassfish のログ ファイルの内容を表示する JSF ページを表示したいと考えています。これまでのところ、私はこれだけを行っています:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.inject.Named;
@Named("GlassfishLogFileController")
@ViewScoped
public class GlassfishLogFile implements Serializable
{
String id;
String fileData;
// Constructor
public GlassfishLogFile()
{
// Get the ID value
try
{
this.id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
}
catch (Exception e)
{
this.id = null;
}
}
// Path for Glassfish directory with log files
String path = "/opt/glassfish3/glassfish/domains/domain1/logs/" + id;
@PostConstruct
public void redFile()
{
File file = new File(path);
try (FileInputStream fis = new FileInputStream(file))
{
int content;
while ((content = fis.read()) != -1)
{
// convert to char and display it
fileData = fileData + (char)content;
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
public String getdata()
{
return fileData;
}
}
意見:
<div id="settingsdiv" style="width:350px; height:400px; position:absolute; background-color:r; top:20px; left:1px">
<div id="settingsHashMap" style="width:1050px; height:400px; position:absolute; background-color:r; top:20px; left:1px">
<h:form id="form" >
<p:growl id="growl" showDetail="true" sticky="true" />
<h:inputTextarea rows="30" cols="50" value="#{GlassfishLogFileController.data}" />
</h:form>
</div>
</div>
テキストファイルのコンテンツを表示するために使用するテキスト領域に遅延読み込みを実装する方法があることに興味があります。メモリを節約したいので、これを行いたいです。ログ ファイルは、非常に多くのメモリを消費する場合があります。
また、.pdfドキュメントをJSFページに表示する方法の例をたくさん見つけましたが、テキストドキュメントをテキスト領域に表示する方法はありませんでした。
幸運をお祈りしています
PSコードを更新しました。今、空の入力フィールドを取得します。ログ ファイルのデータは表示されません。