답글이 며칠째 안달리길래... 다시올립니다.
--------------------------------------------------------------------------------------
======================================================================================
--------------------------------------------------------------------------------------
array 형태가 아니라도 마찬가지 입니다.
소스는 귀사의 itrack 소스인데요.. 일단 올려보도록 하겠습니다.
==================================================================================
static public UniSQLOID insertFile(Connection con, File f, String username, String filename)
throws IOException, SQLException
{
if (f == null)
return null;
FileInputStream fin = null;
UniSQLOID fileObj = null;
try {
String query = \"call new_lo() on class itrack_attach_file\";
Object[] resultValues = ITrackDB.selectQuery(con, query, null, 0);
fileObj = (UniSQLOID) resultValues[0]; // 에러 발생
fin = new FileInputStream(f);
fileObj.saveGLO(fin);
fin.close();
fin = null;
String[] attrNames = {\"username\", \"filename\"};
String[] attrValues = {username, filename};
fileObj.setValues(attrNames, attrValues);
} finally {
if (fin != null)
fin.close();
}
return fileObj;
}
[stack trace]
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: unisql.sql.UniSQLOID cannot be cast to unisql.sql.UniSQLOID
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.ClassCastException: unisql.sql.UniSQLOID cannot be cast to unisql.sql.UniSQLOID
unisql.itrack.ITrackDB.insertFile(ITrackDB.java:97)
unisql.itrack.ITrackIssueInfo.makeAttachfileValue(ITrackIssueInfo.java:1324)
unisql.itrack.ITrackIssueInfo.updateIssue(ITrackIssueInfo.java:970)
org.apache.jsp.issue_005fupdate_jsp._jspService(issue_005fupdate_jsp.java:113)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
==================================================================================
파일첨부할때 나타나는 에러이구요
에러나는 부분은 모두 Object를 UniSQLOID로 cascading하는 부분입니다.
>안녕하세요.
>몇가지 테스트를 해본결과 일반적인 형변환은 가능합니다. 다만 CUBRIDOID[]= (CUBRIDOID[])obj; 와 같이 array 에 대하여 전체를 한번에 형변환은 않되는 것 같습니다. 기본 타입에 대하여도 array 에 대한 형변환을 해보니 역시 않되는 것으로 보입니다.
>OidTest.java:32: inconvertible types
>found : int[]
>required: float[]
> float[] fal = (float[])val;
> ^
>정확히 어떤식으로 하셨는지 해당 부분의 소스를 올려주시면 그대로 테스트를 해보도록 하겠읍니다.
>
>>Object 타입을 UniSQLOID 타입으로 형변환할때 에러가 발생하는데요
>>
>>Object의 리턴값은 디버깅코드로 찍어보면 \"unisql.sql.UniSQLOID@114b17\"
>>
>>와 같이 나옵니다.
>>
>>형변환이 되지 않는이유가 뭔가요....ㅠㅠ
|