2010-08-12 3 views
1

я получаю следующее исключение в этом коде, пожалуйста, помогите мне,javax.imageio.IIOException: невозможно создать выходной поток! (В Java)

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

Это, скорее всего, проблема прав доступа пользователей. Пользователь (сервер?) Должен иметь изменить разрешения на выходной файл. Некоторые графические представления создают файлы в папке/в временной папке, поэтому пользователю/серверу требуется разрешение на создание и изменение файлов в этой папке.

Я думаю, что полная трассировка стека включает в себя основное исключение IOException с подробным описанием причины (например, «отказ в доступе» или так далее).

Редактировать

Чтобы решить эту проблему, запустите приложение в отладчике и установить точку останова на javax.imageio.IIOException. Затем, когда приложение останавливается на этой точке останова, посмотрите на переменные (вам может потребоваться перемещение вниз по стеклу) для имени файла, который нельзя использовать для записи. Затем посмотрите на файловую систему и проверьте, защищен ли файл или встроенный foder.

+0

трассировки стека не включает в себя более полезную информацию, я использую оракула 10 сервера, пожалуйста, вы можете сказать мне, как дать право доступа и где будет это temp folder – manoj

+0

привет, не могли бы вы рассказать мне о праве доступа и где я должен предоставить права доступа? – manoj

2

Я поддерживаю проект cewolf, и я только что загрузил новую версию (1.1.1), которая может решить эту проблему. Дайте ему вращение и сообщите нам, как это работает. Если проблемы сохраняются, перейдите на форум «Другие проекты с открытым исходным кодом» на JavaRanch; вот где я поддерживаю цесополя.

1

Если вы использовали Apache, эта ошибка появится, если не найден temp dir в домашнем каталоге Apache.

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

Пример: C: \ Apache \ Temp

+0

Спасибо! Оно работает. – Naitree

Смежные вопросы