2010-08-12 6 views
1

(자바)이 코드에 다음과 같은 예외가 받고, 는javax.imageio.IIOException : 출력 스트림을 생성 할 수 없습니다!

javax.imageio.IIOException: Can't create output stream! 

de.laures.cewolf.ChartRenderingException: Can't create output stream! 

javax.servlet.jsp.JspException: Can't create output stream! 

at de.laures.cewolf.taglib.tags.ChartMapTag.doStartTag(ChartMapTag.java:117) 

코드는 대부분 사용자 액세스 권한의 문제입니다

try { 
    Dataset dataset = PageUtils.getDataset(chartId, pageContext); 
    Writer out = pageContext.getOut(); 
    final boolean isIE = BrowserDetection.isIE((HttpServletRequest) pageContext.getRequest()); 
    if (hasToolTips()) { 
    enableToolTips(out, isIE); 
    } 
    out.write("<MAP name=\"" + chartId + "\">\n"); 
    ChartRenderingInfo info = (ChartRenderingInfo) root.getRenderingInfo(); 
    Iterator entities = info.getEntityCollection().iterator(); 
    while (entities.hasNext()) { 
    ChartEntity ce = (ChartEntity) entities.next(); 
    out.write("\n<AREA shape=\"" + ce.getShapeType() + "\" "); 
    out.write("COORDS=\"" + ce.getShapeCoords() + "\" "); 
      if (ce instanceof XYItemEntity) 
      { 
      dataset = ((XYItemEntity)ce).getDataset(); 
      } 
    if (!(ce instanceof LegendItemEntity)) { 
    if (hasToolTips()) { 
     writeOutToolTip(dataset, out, isIE, ce); 
    } 
    if (hasLinks()) { 
     writeOutLink(linkGenerator, dataset, out, ce); 
    } 
    } 
    out.write(">"); 
    } 

답변

2

다음과 같다, 좀 도와 바랍니다. 사용자 (서버?)는 을 수정해야합니다. 출력 파일에 대한 사용 권한을 수정하십시오. 일부 차트 renderes는/in temp 폴더에 파일을 생성하므로 사용자/서버는이 폴더의 파일을 만들고 수정하는 권한이 필요합니다.

전체 스택 추적에는 원인에 대한 자세한 설명 (예 : "액세스 거부"등)이있는 기본 IOException이 포함되어 있다고 생각합니다.

편집, 문제를 해결 디버거에서 응용 프로그램을 실행하고 javax.imageio.IIOException에 중단 점을 설정합니다. 그런 다음 해당 중단 점에서 응용 프로그램이 중지되면 쓰기에 사용할 수없는 파일 이름에 대한 변수 (스택 추적을 아래로 이동해야 할 수도 있음)를 살펴보십시오. 그런 다음 파일 시스템을보고 파일 또는 둘러싸인 foder가 쓰기 보호되어 있는지 확인하십시오.

+0

당신은 액세스 권한을 부여하는 방법을 말씀 해주십시오 수있는 곳이 될 것입니다 임시 폴더 – manoj

+0

안녕하세요, 액세스 권한에 대해 말씀해 주시겠습니까? 그리고 액세스 권한을 어디에서 부여해야합니까? – manoj

2

나는 cewolf 프로젝트의 관리자이며,이 문제를 해결할 수있는 새 버전 (1.1.1)을 방금 업로드했습니다. 그것에게 회전을주고 그것이 어떻게 작동하는지 알려주십시오. 문제가 계속되면 JavaRanch의 "기타 오픈 소스 프로젝트"포럼으로 넘어가십시오. 그것이 내가 cewolf를 지원하는 곳입니다.

1

아파치 홈 디렉토리에 임시 디렉토리가없는 경우이 오류를 사용하면이 오류가 나타납니다.

javax.imageio.IIOException : Can't create output stream! 

예 : C : \ 아파치 \ 임시 스택 추적, 난, 오라클 (10) 서버를 사용하고 더 이상 유용한 정보를 포함하지 않습니다

+0

고마워요! 그것은 작동합니다. – Naitree

관련 문제