IFS-30002
The problem is that when i try to upload a file from a client into the iFS usign both de WebUI and the WindowsUI iFS throws an exception:
iFS-30002: Unable to create NewLibraryObject
After that one, an other error is displayed:
java.lang.exception: No path specified
Thanks for your help
null
When you receive this error, what messages are generated in the log files?
You can locate the log files on the host machine running Oracle iFS in the directory $ORACLE_HOME/ifs/log.
null
Similar Messages
-
Pertinent files to follow. Here is the stact trace:
Oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
java.sql.SQLException: ORA-01401: inserted value too large for column
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:1597)
at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java:1209)
at oracle.jdbc.oci8.OCIDBAccess.parseExecuteFetch(OCIDBAccess.java:1321)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1900)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:407)
at oracle.ifs.server.S_LibraryObject.insertRow(S_LibraryObject.java:2812)
at oracle.ifs.server.S_LibraryObject.insertRows(S_LibraryObject.java:2727)
at oracle.ifs.server.OperationState.executeAtomicOperations(OperationState.java:487)
at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2374)
at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java:6808)
at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:6849)
at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:6831)
at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_LibrarySession.java:6619)
at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySession.java:7226)
at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySession.java:4795)
at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySession.java:2789)
at net.anagraph.watermark.FinalDocument.addSignature(FinalDocument.java:139)
nullpackage net.anagraph.watermark;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.*;
import java.io.*;
import java.util.*;
public class FinalDocument extends Document {
private LibrarySession ifsSession;
private PublicObject thisPO;
public static final String CLASS_NAME = "FINALDOCUMENT";
public static final String REFERENCE = "REFERENCE";
public static final String MESSAGE_DIGEST = "MESSAGEDIGEST";
public static final String ORIGINAL_DOCUMENT = "ORIGINALDOCUMENT";
public static final String SIGNING_EXPIRATION_DATE = "SIGNINGEXPIRATIONDATE";
public static final String EXECUTION_DATE = "EXECUTIONDATE";
public static final String SIGNERS = "SIGNERS";
public static final String SIGNATURES = "SIGNATURES";
public static final String REJECTIONS = "REJECTIONS";
public FinalDocument(LibrarySession session, Long id, Long classId, S_LibraryObjectData data) throws IfsException {
super(session, id, classId, data);
ifsSession = session;
try {
thisPO = ifsSession.getPublicObject(id);
} catch (Exception e) {
thisPO = null;
public String getReference() throws IfsException {
AttributeValue av = thisPO.getAttribute(REFERENCE);
return av.getString(ifsSession);
public String getMessageDigest() throws IfsException {
AttributeValue av = thisPO.getAttribute(MESSAGE_DIGEST);
return av.getString(ifsSession);
public Date getSigningExpirationDate() throws IfsException {
AttributeValue av = thisPO.getAttribute(SIGNING_EXPIRATION_DATE);
return av.getDate(ifsSession);
public Date getExecutionDate() throws IfsException {
AttributeValue av = thisPO.getAttribute(EXECUTION_DATE);
return av.getDate(ifsSession);
public DirectoryUser getSigners(int signerNum) throws IfsException {
AttributeValue av = thisPO.getAttribute(SIGNERS);
return(DirectoryUser)av.getPublicObjectArray(ifsSession, signerNum);
public DirectoryUser[] getSigners() throws IfsException {
DirectoryUser[] du = new DirectoryUser[0];
System.out.println("********************* getSigners()");
System.out.println("*********************** getAttribute()");
AttributeValue av = thisPO.getAttribute(SIGNERS);
System.out.println("*********************** getPublicObjectArray()");
PublicObjectInterface[] po = av.getPublicObjectArray(ifsSession);
if (po!=null) {
System.out.println("********************* # Signers: " + po.length);
System.out.println("*********************** new DirectoryUser[]");
du = new DirectoryUser[po.length];
for (int i=0; i<po.length; i++) {
du[i] = (DirectoryUser)po;
System.out.println("************************* " + du[i].getDescription());
return du;
public void addSigner(DirectoryUser newSigner) throws IfsException {
// Build new array with all signers and one extra element
DirectoryUser allSigners[] = this.getSigners();
DirectoryUser newSigners[] = new DirectoryUser[allSigners.length+1];
for (int i=0; i<allSigners.length; i++) {
// If signer already in list, exit
if (newSigner.equals(allSigners[i])) return;
newSigners[i] = allSigners[i];
// Put new signer in extra element
newSigners[allSigners.length] = newSigner;
// Save new array as attribute
AttributeValue av = AttributeValue.newAttributeValue(newSigners);
thisPO.setAttribute(SIGNERS, av);
/** @todo Add UtilityFolder handling as Signers are added */
public void removeSigner(DirectoryUser signer) throws IfsException {
DirectoryUser allSigners[] = this.getSigners();
DirectoryUser newSigners[] = new DirectoryUser[allSigners.length-1];
int h = 0;
for (int i=0; i<allSigners.length; i++) {
if (!allSigners[i].equals(signer)) {
if (h<=i) return;
newSigners[h] = allSigners[i];
h++;
// Save new array as attribute
AttributeValue av = AttributeValue.newAttributeValue(newSigners);
thisPO.setAttribute(SIGNERS, av);
/** @todo Add UtilityFolder handling as Signers are removed */
public SignatureObject[] getSignatureArray() throws IfsException {
AttributeValue av = thisPO.getAttribute(SIGNATURES);
SignatureObject[] sigs = (SignatureObject[])av.getPublicObjectArray(ifsSession);
if (sigs==null) sigs = new SignatureObject[0];
return sigs;
public void addSignature(SignatureObjectDefinition newSignature) throws IfsException {
try {
// Build new array with all Signatures and one extra element
SignatureObject allSignatures[] = this.getSignatureArray();
SignatureObject newSignatures[] = new SignatureObject[allSignatures.length+1];
for (int i=0; i<allSignatures.length; i++) {
newSignatures[i] = allSignatures[i];
// Put new Signature in extra element
newSignatures[allSignatures.length] = (SignatureObject)ifsSession.createPublicObject(newSignature);
// Save new array as attribute
AttributeValue av = AttributeValue.newAttributeValue(newSignatures);
thisPO.setAttribute(SIGNATURES, av);
// Remove signer from list
removeSigner(newSignatures[allSignatures.length].getSigner());
} catch (IfsException e) {
System.out.println(e.toString());
e.printStackTrace(System.out);
throw e;
public RejectionObject[] getRejectionArray() throws IfsException {
AttributeValue av = thisPO.getAttribute(REJECTIONS);
RejectionObject[] rejs = (RejectionObject[])av.getPublicObjectArray(ifsSession);
if (rejs==null) rejs = new RejectionObject[0];
return rejs;
public void addRejection(RejectionObjectDefinition newRejection) throws IfsException {
// Build new array with all Rejections and one extra element
RejectionObject allRejections[] = this.getRejectionArray();
RejectionObject newRejections[] = new RejectionObject[allRejections.length+1];
for (int i=0; i<allRejections.length; i++) {
newRejections[i] = allRejections[i];
// Put new Rejection in extra element
newRejections[allRejections.length] = (RejectionObject)ifsSession.createPublicObject(newRejection);
// Save new array as attribute
AttributeValue av = AttributeValue.newAttributeValue(newRejections);
thisPO.setAttribute(REJECTIONS, av);
// Remove signer from list
removeSigner(newRejections[allRejections.length].getSignatureObject().getSigner());
public boolean isVersionable() {
return false;
null -
Another Post concerning Error IFS-30002
If I try to Upload a XML file containing the Attribute declaration below:
<Attribute>
<Name>FunctionalityImplementedFixed</Name>
<DataType>String</DataType>
<DataLength>512</DataLength>
</Attribute>
I get the Error IFS-30002.
Can someone tell me whats wrong with this declaration. If I comment it, all works fine!
Are there any Restrictions for the Length of the Attribute Name?
nullReproduced the Problem. It is much easier to debug problems when we have the full stack trace.
Eg in your case....
Loading the following Type Definition
<CLASSOBJECT>
<NAME>TEST_OBJECT_01</NAME>
<SUPERCLASS REFTYPE="NAME">DOCUMENT</SUPERCLASS>
<ATTRIBUTES>
<Attribute>
<Name>FunctionalityImplementedFixed</Name>
<DataType>String</DataType>
<DataLength>512</DataLength>
</Attribute>
</ATTRIBUTES>
</CLASSOBJECT>
causes the following error.
Thu Jul 27 12:16:53 PDT 2000: \Temp\XML Long Attribute Name Definition.xml:
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
java.sql.SQLException: ORA-01401: inserted value too large for column
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(SQLException.java:43)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
at oracle.jdbc.oci8.OCIDBAccess.check_error(Compiled Code)
at oracle.jdbc.oci8.OCIDBAccess.executeFetch(Compiled Code)
at oracle.jdbc.oci8.OCIDBAccess.parseExecuteFetch(Compiled Code)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecute(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Compiled Code)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(Compiled Code)
at oracle.jdbc.driver.OraclePreparedStatement.execute(Compiled Code)
at oracle.ifs.server.S_LibraryObject.insertRow(Compiled Code)
at oracle.ifs.server.S_LibraryObject.insertRows(Compiled Code)
at oracle.ifs.server.OperationState.executeAtomicOperations(Compiled Code)
at oracle.ifs.server.S_ClassObject.extendedPostInsert(Compiled Code)
at oracle.ifs.server.S_LibraryObject.postInsert(S_LibraryObject.java:1341)
at oracle.ifs.server.OperationState.executeAtomicOperations(Compiled Code)
at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2348)
at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java:6596)
at oracle.ifs.server.S_LibrarySession.newSchemaObject(S_LibrarySession.java:6707)
at oracle.ifs.server.S_LibrarySession.newSchemaObject(S_LibrarySession.java:6689)
at oracle.ifs.server.S_LibrarySession.DMNewSchemaObject(S_LibrarySession.java:6515)
at oracle.ifs.beans.LibrarySession.DMNewSchemaObject(LibrarySession.java:6997)
at oracle.ifs.beans.LibrarySession.NewSchemaObject(LibrarySession.java:4600)
at oracle.ifs.beans.LibrarySession.createSchemaObject(LibrarySession.java:2584)
at oracle.ifs.beans.parsers.SimpleXmlParserImpl.createObject(Compiled Code)
at oracle.ifs.beans.parsers.SimpleXmlParserImpl.createObject(SimpleXmlParserImpl.java:394)
at oracle.ifs.beans.parsers.SimpleXmlParser.readTopLevelObject(SimpleXmlParser.java:490)
at oracle.ifs.beans.parsers.SimpleXmlParser.traverseTree(Compiled Code)
at oracle.ifs.beans.parsers.XmlParser.parse(Compiled Code)
at ifs.demo.common.xml.NewXmlParser.parse(Compiled Code)
at oracle.ifs.utils.common.ParserHelper.parseExistingDocument(ParserHelper.java:352)
at oracle.ifs.protocols.ntfs.server.FileProxy.parseFile(FileProxy.java:744)
at oracle.ifs.protocols.ntfs.server.FileProxy.closeFile(Compiled Code)
at oracle.ifs.protocols.ntfs.server.FileProxy.run(Compiled Code)
I was able to get this information by using SMB / NT File System Driver to load the XML File. When an XML file fails to load under SMB the entire Verbose Stack Trace is dumped into a 'log' file in the same location as the XML was placed.
In this case changing the Type File so that the DatabaseObjectName tag is used to provide a valid column name fixed the problem. -
Subclassing via XML: IFS-30002
Hi,
I have a problem subclassing via XML files:
After having created a new class, and deleted it (with iFS Manager), I can't reload an other class with the same name (IFS-30002:Unable to create new LibraryObject)
thanks,
XavierI did my subclassing through the Web interface, so I can't catch the exception.
But JWS gives some info:
javawebserver: oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObje
ct
javawebserver:
javawebserver: at java.lang.Throwable.<init>(Compiled Code)
javawebserver: at java.lang.Exception.<init>(Compiled Code)
javawebserver: at java.sql.SQLException.<init>(SQLException.java:43)
javawebserver: at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
javawebserver: at oracle.jdbc.oci8.OCIDBAccess.check_error(Compiled Code)
javawebserver: at oracle.jdbc.oci8.OCIDBAccess.executeFetch(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.executeNonQuery(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.doExecuteOther(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.doExecute(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Compiled Code)
javawebserver: at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(Compiled Code)
javawebserver: at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatem
ent.java)
javawebserver: at oracle.ifs.server.S_LibraryObject.insertRow(S_LibraryObject.java:2789)
javawebserver: at oracle.ifs.server.S_LibraryObject.insertRows(Compiled Code)
javawebserver: at oracle.ifs.server.OperationState.executeAtomicOperations(Compiled Code)
javawebserver: at oracle.ifs.server.S_ClassObject.extendedPostInsert(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibraryObject.postInsert(S_LibraryObject.java:1344)
javawebserver: at oracle.ifs.server.OperationState.executeAtomicOperations(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2
351)
javawebserver: at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.ja
va:6596)
javawebserver: at oracle.ifs.server.S_LibrarySession.newSchemaObject(S_LibrarySession.jav
a:6707)
javawebserver: at oracle.ifs.server.S_LibrarySession.newSchemaObject(S_LibrarySession.jav
a:6689)
javawebserver: at oracle.ifs.server.S_LibrarySession.DMNewSchemaObject(S_LibrarySession.j
ava:6515)
javawebserver: at oracle.ifs.beans.LibrarySession.DMNewSchemaObject(LibrarySession.java:7
168)
javawebserver: at oracle.ifs.beans.LibrarySession.NewSchemaObject(LibrarySession.java:476
9)
javawebserver: at oracle.ifs.beans.LibrarySession.createSchemaObject(LibrarySession.java:
2731)
javawebserver: at
javawebserver: at
javawebserver: at
javawebserver: at
javawebserver: at
javawebserver: at
javawebserver: at oracle.ifs.utils.common.ParserHelper.parseExistingDocument(ParserHelper
.java:352)
javawebserver: at oracle.ifs.clients.webui.FileUtils.parseAndDelete(FileUtils.java:714)
javawebserver: at ifs.webui._jsps._upload2._jspService(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.pagecompile.jsp.runtime.HttpJspBase.servi
ce(HttpJspBase.java:94)
javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.runServlet(IfsJspServlet.ja
va:865)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.processJspPage(Compiled Cod
e)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.service(IfsJspServlet.java:
240)
javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
javawebserver: at com.sun.server.ServletState.callService(Compiled Code)
javawebserver: at com.sun.server.ServletManager.callServletService(Compiled Code)
javawebserver: at com.sun.server.ProcessingState.invokeTargetServlet(Compiled Code)
javawebserver: at com.sun.server.http.HttpProcessingState.execute(Compiled Code)
javawebserver: at com.sun.server.http.stages.Runner.process(Compiled Code)
javawebserver: at com.sun.server.ProcessingSupport.process(Compiled Code)
javawebserver: at com.sun.server.Service.process(Compiled Code)
javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(Compiled Code)
javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(Compiled Code)
javawebserver: at com.sun.server.HandlerThread.run(Compiled Code)
javawebserver:
The xml file I upload doesn't seem to be responsible for problems, but here it is:
<?xml version='1.0' encoding = 'ISO-8859-1' standalone='yes'?>
<!--Module.xml-->
<CLASSOBJECT>
<Name>Module</Name>
<Description> Module </Description>
<Superclass Reftype='name'>Document</Superclass>
<BeanClassPath>ifs.demo.topdoc.Module</BeanClassPath>
<Attributes>
<ATTRIBUTE>
<Name> Donnees </Name>
<DataType> String </DataType>
<DataLength> 128 </DataLength>
</ATTRIBUTE>
<ATTRIBUTE>
<Name> ApplicabiliteDocumentaire </Name>
<DataType> String </DataType>
<DataLength> 12 </DataLength>
</ATTRIBUTE>
<ATTRIBUTE>
<Name> UniteDeProduction </Name>
<DataType> String </DataType>
<DataLength> 12 </DataLength>
</ATTRIBUTE>
<ATTRIBUTE>
<Name> Langue </Name>
<DataType> String </DataType>
<DataLength> 5 </DataLength>
</ATTRIBUTE>
</Attributes>
</CLASSOBJECT>
Since the corresponding bean has to be deployed afterward, it must not have any influence...
thanks -
Error while trying to register user to iFS 9.0.1
Hi ,
We are getting following error while trying to register user with our custom application. When I checked the forums it says the unique constraint might be the problem but I don't see any unique constraint violation in my exception trace. We are using 9.0.1 with 9.0.1 Database.
Here is the stack trace:
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
java.sql.SQLException: ORA-00600: internal error code, arguments: [25012], [10], [0], [], [], [], [], []
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:184)
at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:1768)
at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java:1380)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1868)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1787)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2377)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:427)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:492)
at oracle.ifs.server.S_LibrarySession.execute(S_LibrarySession.java:14319)
at oracle.ifs.server.S_LibraryObject.insertRow(S_LibraryObject.java:3251)
at oracle.ifs.server.S_LibraryObject.insertRows(S_LibraryObject.java:3150)
at oracle.ifs.server.OperationState.executeAtomicOperations(OperationState.java:487)
at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2716)
at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java:7922)
at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7963)
at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7945)
at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_LibrarySession.java:7604)
at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySession.java:7901)
at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySession.java:5345)
at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySession.java:2973)
at oracle.ifs.adk.user.UserManager.createDirectoryUser(UserManager.java:1122)
at oracle.ifs.adk.user.UserManager.createUser(UserManager.java:987)
at com.cisco.as.ifs.management.fndUserManager.createUser(fndUserManager.java:131)
Thanks
Rajesh BasawaRajesh,
I was wondering did you manage to get this problem fixed we are having a similar problem when creating an iFS object; the following is the stack trace
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
[Mon Jun 16 14:19:47 BST 2003] stderr: java.sql.SQLException: ORA-00600: internal error code, arguments: [25012], [5], [0], [], [], [], [], []
[Mon Jun 16 14:19:47 BST 2003] stderr:
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:1759)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java:1371)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1852)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1771)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2361)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:422)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:487)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.S_LibrarySession.execute(S_LibrarySession.java:14319)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.S_LibraryObject.insertRow(S_LibraryObject.java:3251)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.S_LibraryObject.insertRows(S_LibraryObject.java:3150)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.OperationState.executeAtomicOperations(OperationState.java:487)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2716)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java:7922)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7963)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7945)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_LibrarySession.java:7604)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySession.java:7901)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySession.java:5345)
[Mon Jun 16 14:19:47 BST 2003] stderr: at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySession.java:2973) -
Where did the iFS Javadoc webpages go?
The Javadoc webpages of iFS APIs seem to have vaporized early last week. Can someone please point to their new home? they were not easy to find in the first place, but now I am having no luck at all.
Thanks,
-JeffI'm trying very hard to just create a new versioned document in IFS 9.0.2 via APIs. Unfortunately, I'm running into problems at many different points:
If I don't specify a content string, I get:
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
oracle.ifs.common.IfsException: IFS-31803: No Content specified in ContentObjectDefinition
If I leave the file out of the DocDef, I get a different error:
java.lang.NoSuchMethodError: long oracle.jdbc.dbaccess.DBAccess.lobWrite(oracle.sql.BLOB, long, byte[])
Even if this were to work, embedded within the code, there is quirky behaviour coming from the order of establishing Documents, VersionsSeries, and Families. I know you guys are trying to maintain flexability, but the structures listed in the book have hidden sequential dependencies (difficult coupling issues). It's not well documented, making these APIs very difficult to use without a lot of insider knowledge. It's great that you all can agree as to where I should go for examples, but you have not clearly communicated to me where I can see these examples. This is the same as when I asked for javadocs. please be kinder to me, I can't read your minds or participate in your internal communication. Don't get me wrong, I appreciate all the help, but I am not making great progress on this side. With all of the quirkiness my company has experienced with iFS's Java APIs, we've decided to isolate and eliminate 80% of the extra methods provided. We are trying to wrap the remaining 20% into a highly reliable Interface & Implementation. The I/F is easy to define, but even just sifting through and using the ifs bean classes for implementation is proving difficult.
com.rsaiia.common.pdm.Folder aDir = testFileRepository.getRootFolder()
.getFolder("home")
.getFolder("jeffr")
.getFolder("SecondTest");
com.rsaiia.common.pdm.myDoc = aDir.createDocument("BungBucket.unc",
"UNCLASSIFIED_DOCUMENT",
new File("C:\\docs\\VersionTest.txt"));
public com.lmco.rsaiia.common.pdm.Document
createDocument(String theDocName, String theContentTypeName, File theFolderPath)
throws PDMException {
com.lmco.rsaiia.common.pdm.Document theDoc;
if (theDocName == null)
throw new NullPointerException("No Document Name");
if (theContentTypeName == null)
throw new NullPointerException("No ContentType Name");
if (theFolderPath == null)
throw new NullPointerException("No File Name");
String description = theDocName + " Description";
// The content (file to be contained in document) is associated in the
// createDocumentDefinition call
try{
DocumentDefinition def = createDocumentDefinition(theDocName, description,
theFolderPath, theContentTypeName);
def.setAddToFolderOption(myFolder);
// the more general variant of createDocument does the rest
theDoc = getDocument(createDocument(def));
theDoc.addAttribute(m_SOURCE_FILE_LOCATION_ATTRIBUTE); // should already be there but just in case
PublicObject aFileObject = myFolder.findPublicObjectByPath(theDocName);
Family aFamily = (Family)aFileObject;
myFileSystem.makeVersioned(aFileObject); // make all created files versioned
VersionSeries aVSeries = aFileObject.getFamily().getPrimaryVersionSeries();
VersionDescription aVersDesc = aVSeries.getLastVersionDescription();
System.out.println("Created Document " + theDocName + " In " + theFolderPath);
return theDoc;
catch (Exception e){
throw new PDMException(e);
* create a DocumentDefinition.
* @param docName the name of the new document
* @param classname the name of the classobject for the new document
* @param filePath a local file system path to content for
* this document
* @param parent the folder that will become the parent of the
* new document
* @return the created Document
* @exception IfsException if operation fails.
private DocumentDefinition createDocumentDefinition (String name,
String description, File filePath, String contentType)
throws IfsException {
if ( name == null )
throw new NullPointerException("Next time, offer a document name");
DocumentDefinition def = new DocumentDefinition(getSession());
def.setAttribute(oracle.ifs.beans.Document.NAME_ATTRIBUTE,
AttributeValue.newAttributeValue(name));
def.setAttribute(oracle.ifs.beans.Document.DESCRIPTION_ATTRIBUTE,
AttributeValue.newAttributeValue(description));
// Set the class only if it's specified
ClassObject co = (contentType == null)
? null : lookupClassObject(contentType);
if (co != null)
def.setClassObject(co);
// Set the content if specified
if (filePath != null)
applyContentSettings(def, filePath.toString());
return def;
Gets the file extension from the supplied file name and
uses this to infer the Format which is written to the supplied
document definition object
private void applyContentSettings(DocumentDefinition def, String filePath)
throws IfsException
if ((filePath != null) && (def != null))
String ext = null;
int pos = filePath.lastIndexOf(".");
if (pos > 0 && pos < filePath.length())
ext = filePath.substring(pos + 1);
if (ext == null)
// default to "txt"
ext = "txt";
// set the based on the extension from the filepath
Format fmt = lookupFormatByExtension(ext);
def.setFormat(fmt);
def.setContentPath(filePath);
* Creates a new folder in the directory specified by the oParentFolder input parameter
* @param Document a Oracle Document.
* @return PDMDocument
* @throws IfsException if operation fails.
private com.lmco.rsaiia.common.pdm.Document getDocument (oracle.ifs.beans.Document theDoc)
throws PDMException {
try{
return new PDMDocument(theDoc,getSession(),getFileSystem());
catch (Exception e){
throw new PDMException(e);
private oracle.ifs.beans.Document createDocument(DocumentDefinition def) // was public
throws IfsException {
oracle.ifs.beans.Document theDoc =
(oracle.ifs.beans.Document) getSession().createPublicObject(def);
return theDoc; -
IFS-30027: Insufficient access to create a SchemaObject
I receive the following error when I to parse a XML file. IFS-
21005 indicates, I need administrator mode. What I want know is
this misleading and I just need to modify the ACL or does the
administrator need grant a higher level of access?
oracle.ifs.common.IfsException: IFS-30002: Unable to create new
LibraryObject oracle.ifs.common.IfsException: IFS-30027:
Insufficient access to create a SchemaObject
oracle.ifs.common.IfsException: IFS-21005: Administrator mode is
required for this operation
Thanks,
ArtIf the XML file you are uploading is specifying the creation of a
SchemaObject (e.g. a ClassObject, ValueDomain, ClassDomain, or
ValueDefault), the session must be in admin mode. There is no
way to circumvent this by changing an ACL.
regards,
dave -
Dear Members,
I am trying to upload files from my local disk to the IFS. There is no problem about uploading txt files. But i could not upload the image files like ".tif".
Is there anyone who can help me urgently please?
Here is the part of my source code..
DocumentDefinition newDocDef = new DocumentDefinition(ifsSession);
newDocDef.setName(filename);
newDocDef.setContentPath(localpath);
newDocDef.setAddToFolderOption(runtime);
Document doc = (Document)ifsSession.createPublicObject(newDocDef);Dear Sir,
This topic is very urgent for me, and I will be very happy for your help.
I have changed my code like this.
ClassObject co = classUtils.lookupClassObject("DOCUMENT");
Collection c = ifsSession.getFormatExtensionCollection();
Format f = (Format) c.getItems("tif");
DocumentDefinition newDocDef = new DocumentDefinition(ifsSession);
newDocDef.setContentPath(localpath);
newDocDef.setAddToFolderOption(runtime);
newDocDef.setName(filename);
newDocDef.setClassObject(co);
newDocDef.setFormat(f);
TieDocument doc = (TieDocument)ifsSession.createPublicObject(newDocDef);
And the error message is here.
oracle.ifs.common.IfsException:
IFS-30002: Unable to create new LibraryObject oracle.ifs.common.IfsException:
IFS-32225: Error storing reference to content object 22,432 in media InterMediaBlob java.sql.SQLException:
ORA-00911: invalid character
void oracle.jdbc.dbaccess.DBError.throwSqlException(java.lang.String, java.lang.String, int) DBError.java:187 void oracle.jdbc.ttc7.TTIoer.processError() TTIoer.java:241 void oracle.jdbc.ttc7.Oall7.receive() Oall7.java:543 void oracle.jdbc.ttc7.TTC7Protocol.doOall7(byte, byte, int, byte[], oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int, oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int) TTC7Protocol.java:1477 int oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(oracle.jdbc.dbaccess.DBStatement, byte, byte[], oracle.jdbc.dbaccess.DBDataSet, int, oracle.jdbc.dbaccess.DBDataSet, int) TTC7Protocol.java:888 void oracle.jdbc.driver.OracleStatement.executeNonQuery(boolean) OracleStatement.java:2004 void oracle.jdbc.driver.OracleStatement.doExecuteOther(boolean) OracleStatement.java:1924 void oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout() OracleStatement.java:2562 int oracle.jdbc.driver.OraclePreparedStatement.executeUpdate() OraclePreparedStatement.java:452 boolean oracle.jdbc.driver.OraclePreparedStatement.execute() OraclePreparedStatement.java:526 boolean oracle.ifs.server.S_LibrarySession.execute(java.sql.PreparedStatement) S_LibrarySession.java:14518 oracle.sql.BLOB oracle.ifs.server.S_MediaBlob.createBlobReference(java.lang.Long, java.lang.String) S_MediaBlob.java:398 java.io.OutputStream oracle.ifs.server.S_MediaBlob.getOutputStream(java.lang.Long, java.lang.String) S_MediaBlob.java:240 java.io.OutputStream oracle.ifs.server.S_MediaBlob.getOutputStream(java.lang.Long) S_MediaBlob.java:225 java.lang.Long oracle.ifs.server.S_Media.setContentStream(java.io.InputStream) S_Media.java:1741 void oracle.ifs.server.S_Media.setContent(oracle.ifs.server.S_LibraryObjectDefinition) S_Media.java:1680 void oracle.ifs.server.S_ContentObject.setContent(oracle.ifs.server.S_LibraryObjectDefinition) S_ContentObject.java:402 void oracle.ifs.server.S_ContentObject.extendedPreInsert(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_ContentObject.java:239 void oracle.ifs.server.S_LibraryObject.preInsert(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_LibraryObject.java:1644 oracle.ifs.server.S_LibraryObjectData oracle.ifs.server.S_LibraryObject.createInstance(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_LibraryObject.java:2711 oracle.ifs.common.AttributeValue oracle.ifs.server.S_LibrarySession.createSystemObjectInstance(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_LibrarySession.java:8365 void oracle.ifs.server.S_Document.setContentObject(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition, oracle.ifs.server.S_ContentQuota, boolean) S_Document.java:475 void oracle.ifs.server.S_Document.extendedPreInsert(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_Document.java:313 void oracle.ifs.server.S_LibraryObject.preInsert(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_LibraryObject.java:1644 oracle.ifs.server.S_LibraryObjectData oracle.ifs.server.S_LibraryObject.createInstance(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_LibraryObject.java:2711 oracle.ifs.server.S_LibraryObject oracle.ifs.server.S_LibrarySession.newLibraryObject(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_LibrarySession.java:8159 oracle.ifs.server.S_PublicObject oracle.ifs.server.S_LibrarySession.newPublicObject(oracle.ifs.server.OperationState, oracle.ifs.server.S_LibraryObjectDefinition) S_LibrarySession.java:8200 oracle.ifs.server.S_PublicObject oracle.ifs.server.S_LibrarySession.newPublicObject(oracle.ifs.server.S_LibraryObjectDefinition) S_LibrarySession.java:8182 oracle.ifs.server.S_LibraryObjectData oracle.ifs.server.S_LibrarySession.DMNewPublicObject(oracle.ifs.server.S_LibraryObjectDefinition) S_LibrarySession.java:7841 oracle.ifs.server.S_LibraryObjectData oracle.ifs.beans.LibrarySession.DMNewPublicObject(oracle.ifs.server.S_LibraryObjectDefinition) LibrarySession.java:8015 oracle.ifs.beans.PublicObject oracle.ifs.beans.LibrarySession.NewPublicObject(oracle.ifs.beans.PublicObjectDefinition) LibrarySession.java:5373 oracle.ifs.beans.PublicObject oracle.ifs.beans.LibrarySession.createPublicObject(oracle.ifs.beans.PublicObjectDefinition) LibrarySession.java:2985 Process exited with exit code 0. -
IfsException: IFS-10407: Invalid Attribute name
I'm trying to programmaticaly create an instance of the custom class AsapPublisher that I have created. When I attempt to set the attribute jobTitle I get the IFS exception 10407. The attribute jobTitle exists so I unsure why I'm getting this error. Below is my code and stack trace. If anyone can see where I'm going wrong I would appreciate input. Thanks!
instantiatePublisher.jsp
<%@ page contentType="text/html;charset=WINDOWS-1252"%>
<%@ page import="oracle.ifs.common.IfsException" %>
<%@ page import="oracle.ifs.beans.LibrarySession" %>
<%@ page import="oracle.ifs.beans.LibraryService" %>
<%@ page import="java.util.Locale" %>
<%@ page import="oracle.ifs.beans.ClassObject" %>
<%@ page import="java.io.*" %>
<%@ page import="publishasap.AsapPublisher" %>
<%@ page import="publishasap.definition.AsapPublisherDef" %>
<%@ page import="publishasap.definition.AsapPublisherContactDef" %>
<%@ page import="oracle.ifs.common.CleartextCredential" %>
<%@ page import="oracle.ifs.common.ConnectOptions" %>
<%
String username = "system";
String password = "manager";
String serviceName = "IfsDefault";
String servicePassword = "ifssys";
try
LibraryService ifsService = new LibraryService();
CleartextCredential credentials = new CleartextCredential(username,password);
ConnectOptions connectOpts = new ConnectOptions();
connectOpts.setLocale(Locale.getDefault());
connectOpts.setServiceName(serviceName);
connectOpts.setServicePassword(servicePassword);
LibrarySession ifsSession = ifsService.connect(credentials,connectOpts);
ifsSession.setAdministrationMode(true);
//set the AsapPublisher attributes and create a publisher instance
AsapPublisherDef publisher = new AsapPublisherDef(ifsSession);
publisher.setCompanyName(request.getParameter("pubName"));
publisher.setAddress1(request.getParameter("address1"));
publisher.setAddress2(request.getParameter("address2"));
publisher.setCity(request.getParameter("city"));
publisher.setState(request.getParameter("state"));
publisher.setPostalCode(request.getParameter("postalCode"));
publisher.setCountry(request.getParameter("country"));
publisher.setPhoneNumber(request.getParameter("phoneNumber"));
publisher.setPublisherDescription(request.getParameter("pubDescription"));
out.println("here");
//create the publisher contact object
AsapPublisherContactDef contact = new AsapPublisherContactDef(ifsSession);
contact.setClassObject(ClassObject.getClassObjectFromLabel(ifsSession,publishasap.AsapPublisherContact.CLASS_NAME));
contact.setJobTitle(request.getParameter("jobTitle"));
contact.setPrefix(request.getParameter("prefix"));
contact.setFirstName(request.getParameter("fName"));
contact.setMInitial(request.getParameter("mInitial"));
contact.setLastName(request.getParameter("lName"));
contact.setSuffix(request.getParameter("suffix"));
contact.setEmail1(request.getParameter("email1"));
contact.setEmail2(request.getParameter("email2"));
contact.setFax(request.getParameter("fax"));
contact.setWkPhone(request.getParameter("workPhone"));
contact.setUsername(request.getParameter("username"));
contact.setPassword(request.getParameter("password"));
publisher.setAsapPublisherContact(contact);
AsapPublisher createPub = (AsapPublisher) ifsSession.createPublicObject(contact);
ifsSession.disconnect();
catch(IfsException e)
out.println("System was unable to create an author object");
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw, true);
e.printStackTrace(pw);
String trace = sw.toString();
sw.close();
pw.close();
out.println(trace);
IfsException.setVerboseMessage(true);
String message = e.getMessage();
out.println(message);
%>
AsapPublisher.java
// Copyright (c) 2000 Thin Data Solutions
package publish asap;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.S_LibraryObjectData;
import publishasap.AsapCustomer;
import publishasap.AsapPublisherContact;
import publishasap.definition.AsapPublisherContactDef;
* A Bean class.
* <P>
public class AsapPublisher extends AsapCustomer {
public static final String CLASS_NAME= "AsapPublisher";
public static final String PUBLISHER_CONTACT= "AsapPublisherContact";
public static final String PUBLISHER_DESCRIPTION="publisherDescription";
private LibrarySession m_IfsSession= null;
* Constructor
public AsapPublisher( LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
// Construct a Document object - standard variant.
super(ifs,id,classId,data);
m_IfsSession= ifs;
public void setAsapPublisherContact(AsapPublisherContact newValue)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute(PUBLISHER_CONTACT, av);
public void setAsapPublisherContact(AsapPublisherContactDef newValue)
throws IfsException{
PublicObject po= m_IfsSession.createPublicObject(newValue);
AttributeValue av= AttributeValue.newAttributeValue(po);
setAttribute(PUBLISHER_CONTACT, av);
public void setPublisherDescription(String newValue)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute(PUBLISHER_DESCRIPTION, av);
public String getPublisherDescription()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_DESCRIPTION);
return av.getString(getSession());
public AsapPublisherContact getAsapPublisherContact()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_CONTACT);
return (AsapPublisherContact)av.getObject(getSession());
AsapPublisherDef.jav
// Copyright (c) 2000 Thin Data Solutions
package publishasap;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.S_LibraryObjectData;
import publishasap.AsapCustomer;
import publishasap.AsapPublisherContact;
import publishasap.definition.AsapPublisherContactDef;
* A Bean class.
* <P>
public class AsapPublisher extends AsapCustomer {
public static final String CLASS_NAME= "AsapPublisher";
public static final String PUBLISHER_CONTACT= "AsapPublisherContact";
public static final String PUBLISHER_DESCRIPTION="publisherDescription";
private LibrarySession m_IfsSession= null;
* Constructor
public AsapPublisher( LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
// Construct a Document object - standard variant.
super(ifs,id,classId,data);
m_IfsSession= ifs;
public void setAsapPublisherContact(AsapPublisherContact newValue)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute(PUBLISHER_CONTACT, av);
public void setAsapPublisherContact(AsapPublisherContactDef newValue)
throws IfsException{
PublicObject po= m_IfsSession.createPublicObject(newValue);
AttributeValue av= AttributeValue.newAttributeValue(po);
setAttribute(PUBLISHER_CONTACT, av);
public void setPublisherDescription(String newValue)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute(PUBLISHER_DESCRIPTION, av);
public String getPublisherDescription()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_DESCRIPTION);
return av.getString(getSession());
public AsapPublisherContact getAsapPublisherContact()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_CONTACT);
return (AsapPublisherContact)av.getObject(getSession());
AsapPublisherContact.java
// Copyright (c) 2000 Movement Inc.
package publishasap;
import publish asap.*;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.S_LibraryObjectData;
* A Bean class.
* <P>
public class AsapPublisherContact extends AsapPerson {
public static final String PUBLISHER_ID= "publisherId";
public static final String JOB_TITLE= "jobTitle";
public static final String CLASS_NAME= "AsapPublisherContact";
* Constructor
public AsapPublisherContact( LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
// Construct a Document object - standard variant.
super(ifs,id,classId,data);
public void setPublisherId(String newId)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newId);
setAttribute(PUBLISHER_ID, av);
public void setJobTitle(String newTitle)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newTitle);
setAttribute(JOB_TITLE, av);
public String getPublisherId()
throws IfsException{
AttributeValue av= getAttribute(PUBLISHER_ID);
return av.getString(getSession());
public String getJobTitle()
throws IfsException{
AttributeValue av= getAttribute(JOB_TITLE);
return av.getString(getSession());
AsapPublisherContactDef.java
// Copyright (c) 2000 Movement Inc.
package publishasap.definition;
import publishasap.AsapPublisherContact;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
* A Bean class.
* <P>
public class AsapPublisherContactDef extends AsapPersonDef {
* Constructor
public AsapPublisherContactDef(LibrarySession ifs)
throws IfsException
// Construct a Document object - standard variant.
super(ifs);
this.setClassObject(ClassObject.getClassObjectFromLabel(ifs,publishasap.AsapPublisherContact.CLASS_NAME));
public void setPublisherId(String newId)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newId);
setAttribute(AsapPublisherContact.PUBLISHER_ID, av);
public void setJobTitle(String newTitle)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newTitle);
setAttribute(AsapPublisherContact.JOB_TITLE, av);
AsapPublisherContact.xml
<ClassObject>
<Name>AsapPublisherContact</Name>
<Description>Stores the information on the main contact person for the publisher.</Description>
<SuperClass RefType="name">AsapPerson</SuperClass>
<BeanClassPath>publishasap.AsapPublisherContact</BeanClassPath>
<!-- Attribute list for the object -->
<Attributes>
<!-- Store the primary key of the publisher whom this person is the contact for. -->
<Attribute>
<Name>publisherId</Name>
<DataType>String</DataType>
<DataLength>10</DataLength>
</Attribute>
<!-- Store the contact person's job title or position. -->
<Attribute>
<Name>jobTitle</Name>
<DataType>String</DataType>
<DataLength>70</DataLength>
</Attribute>
</Attributes>
</ClassObject>
AsapPublisher.xml
<ClassObject>
<Name>AsapPublisher</Name>
<Description>Stores the information about publishers in the database.</Description>
<SuperClass RefType="name">AsapCustomer</SuperClass>
<BeanClassPath>publishasap.AsapPublisher</BeanClassPath>
<!-- Attribute list for the object. -->
<Attributes>
<!-- A reference to the main contact person at the publisher. -->
<Attribute>
<Name>asapPublisherContact</Name>
<DataType>PublicObject</DataType>
<ClassDomain reftype="name">AsapPubContactDomain</ClassDomain>
</Attribute>
<!-- A Descript ion of the publisher. -->
<Attribute>
<Name>publisherDescription</Name>
<DataType>String</DataType>
<DataLength>500</DataLength>
</Attribute>
</Attributes>
</ClassObject>
stack trace
System was unable to create an author object oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject oracle.ifs.common.IfsException: IFS-10407: Invalid Attribute name (JOBTITLE) at oracle.ifs.server.S_LibraryObject.insertRows(S_LibraryObject.java, Compiled Code) at oracle.ifs.server.OperationState.executeAtomicOperations(OperationState.java, Compiled Code) at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java, Compiled Code) at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java, Compiled Code) at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:6853) at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:6835) at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_LibrarySession.java:6623) at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySession.java:7226) at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySession.java:4795) at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySession.java:2789) at publishasap.definition.AsapPublisherDef.setAsapPublisherContact(AsapPublisherDef.java:41) at ifs.files._ifs._jsp_25_2dbin._admin._instantiatePublisher._jspService(_instantiatePublisher.java:166) at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java, Compiled Code) at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java, Compiled Code) at oracle.jsp.JspServlet.doDispatch(JspServlet.java, Compiled Code) at oracle.jsp.JspServlet.internalService(JspServlet.java, Compiled Code) at oracle.ifs.protocols.dav.impl.IfsDavServlet.processJsp(IfsDavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.impl.IfsDavServlet.doGet(IfsDavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.impl.IfsDavServlet.doPost(IfsDavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.DavServlet.service(DavServlet.java, Compiled Code) at oracle.ifs.protocols.dav.impl.IfsDavServlet.service(IfsDavServlet.java, Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code) at org.apache.jserv.JServConnection.processRequest(JServConnection.java, Compiled Code) at org.apache.jserv.JServConnection.run(JServConnection.java, Compiled Code) at java.lang.Thread.run(Thread.java, Compiled Code) IFS-30002: Unable to create new LibraryObjectSorry Mark. Here are the rest of the files.
AsapPerson.java
// Copyright (c) 2000 PublishASAP
package publishasap;
import oracle.ifs.beans.ApplicationObject;
import oracle.ifs.beans.LibrarySession;
import oracle.ifs.common.AttributeValue;
import oracle.ifs.common.IfsException;
import oracle.ifs.server.S_LibraryObjectData;
* Superclass of all people involved in Publishasap
* <P>
public class AsapPerson extends ApplicationObject {
// Private class constants.
public static final String CLASS_NAME = "AsapPerson";
public static final String PREFIX= "prefix";
public static final String FIRST_NAME= "firstName";
public static final String INITIAL= "mInitial";
public static final String LAST_NAME= "lastName";
public static final String SUFFIX = "suffix";
public static final String EMAIL_ONE= "email1";
public static final String EMAIL_TWO= "email2";
public static final String WORK_PHONE= "wkPhone";
public static final String FAX= "fax";
public static final String USERNAME= "username";
public static final String PASSWORD= "password";
* Constructor
public AsapPerson(LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
super(ifs, id, classId, data);
* Set the value of the PREFIX attribute.
public final void setPrefix( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( PREFIX, av );
* Get the current value of the PREFIX attribute.
public final String getPrefix()
throws IfsException{
AttributeValue av= getAttribute(PREFIX);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the first name attribute.
public final void setFirstName( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( FIRST_NAME, av );
* Get the current value of the FIRST_NAME attribute.
public final String getFirstName()
throws IfsException{
AttributeValue av= getAttribute(FIRST_NAME);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the INITIAL attribute.
public final void setMInitial( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( INITIAL, av );
* Get the current value of the INITIAL attribute.
public final String getMInitial()
throws IfsException{
AttributeValue av= getAttribute(INITIAL);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the LAST_NAME attribute.
public final void setLastName( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( LAST_NAME, av );
* Get the current value of the LAST_NAME attribute.
public final String getLastName()
throws IfsException{
AttributeValue av= getAttribute(LAST_NAME);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the SUFFIX attribute.
public final void setSuffix( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( SUFFIX, av );
* Get the current value of the SUFFIX attribute.
public final String getSuffix()
throws IfsException{
AttributeValue av= getAttribute(SUFFIX);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the EMAIL_ONE attribute.
public final void setEmail1( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( EMAIL_ONE, av );
* Get the current value of the EMAIL_ONE.
public final String getEmail1()
throws IfsException{
AttributeValue av= getAttribute(EMAIL_ONE);
String tmp= av.getString(getSession());
return t mp.trim();
* Set the EMAIL_TWO attribute.
public final void setEmail2( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( EMAIL_TWO, av );
* Get the current value of EMAIL_TWO.
public final String getEmail2()
throws IfsException{
AttributeValue av= getAttribute(EMAIL_TWO);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the WORK_PHONE attribute.
public final void setWkPhone( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( WORK_PHONE, av );
* Get the current value of the WORK_PHONE attribute.
public final String getWkPhone()
throws IfsException{
AttributeValue av= getAttribute(WORK_PHONE);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the FAX attribute.
public final void setFax( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( FAX, av );
* Get the current value of the FAX attribute.
public final String getFax()
throws IfsException{
AttributeValue av= getAttribute(FAX);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the username and password.
public final void setUsername( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( USERNAME, av );
* Get the current value of the USERNAME.
public final String getUsername()
throws IfsException{
AttributeValue av= getAttribute(USERNAME);
String tmp= av.getString(getSession());
return tmp.trim();
* Set the value of the PASSWORD attribute.
public final void setPassword( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( PASSWORD, av );
* Get the current value of the password field.
public final String getPassword()
throws IfsException{
AttributeValue av= getAttribute(PASSWORD);
String tmp= av.getString(getSession());
return tmp.trim();
AsapPersonDef.java
// Copyright (c) 2000 Movement Inc
package publishasap.definition;
import oracle.ifs.beans.ClassObject;
import oracle.ifs.beans.LibrarySession;
import oracle.ifs.beans.LibraryObjectDefinition;
import oracle.ifs.beans.ApplicationObjectDefinition;
import oracle.ifs.common.AttributeValue;
import oracle.ifs.common.IfsException;
import javax.servlet.http.HttpServletRequest;
import oracle.ifs.beans.DocumentDefinition;
* A Bean class.
* <P>
* @author Brooke Supryka
public class AsapPersonDef extends ApplicationObjectDefinition {
* This bean is called to create an instance of a person
* <P>
* @author Brooke Supryka
private static final boolean DEBUG = true;
* Constructs a new instance.
public AsapPersonDef(LibrarySession ifs) throws IfsException
//Construct an AsapAuthor object
super(ifs);
this.setClassObject(ClassObject.getClassObjectFromLabel(ifs,publishasap.AsapPerson.CLASS_NAME));
* Set the value of the PREFIX attribute.
public final void setPrefix( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.PREFIX, av );
* Set the value of the first name attribute.
public final void setFirstName( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.FIRST_NAME, av );
* Set the value of the INITIAL attribute.
public final void setMInitial( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.INITIAL, av );
* Set the value of the LAST_NAME attribute.
public final void setLastName( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.LAST_NAME, av );
* Set the value of the SUFFIX attribute.
public final void setSuffix( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue( newValue );
setAttribute( publishasap.AsapPerson.SUFFIX, av );
* Set the EMAIL_ONE attribute.
public final void setEmail1( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.EMAIL_ONE, av );
* Set the EMAIL_TWO attribute.
public final void setEmail2( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.EMAIL_TWO, av );
* Set the value of the WORK_PHONE attribute.
public final void setWkPhone( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.WORK_PHONE, av );
* Set the value of the FAX attribute.
public final void setFax( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.FAX, av );
* Set the value of the username and password.
public final void setUsername( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.USERNAME, av );
* Set the value of the PASSWORD attribute.
public final void setPassword( String newValue )
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newValue);
setAttribute( publishasap.AsapPerson.PASSWORD, av );
AsapCustomer
// Copyright (c) 2000 Movement Inc.
package publishasap;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.server.S_LibraryObjectData;
* Instance of AsapCustomer.
* <P>
* @author Ian Kulmatycki
public class AsapCustomer extends TieApplicationObject {
public static final String CLASS_NAME= "AsapCustomer";
public static final String COMPANY_NAME= "companyName";
public static final String ADDRESS_1= "address1";
public static final String ADDRESS_2= "address2";
public static final String CITY= "city";
public static final String STATE= "state";
public static final String POSTAL_CODE= "postalCode";
public static final String PHONE_NUMBER= "phoneNumber";
public static final String COUNTRY= "country";
* Constructor
public AsapCustomer( LibrarySession ifs,
java.lang.Long id,
java.lang.Long classId,
S_LibraryObjectData data)
throws IfsException{
// Construct a Document object - standard variant.
super(ifs,id,classId,data);
public void setCompanyName(String newName)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newName);
setAttribute(COMPANY_NAME, av);
public void setAddress1(String newAddress)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newAddress);
setAttribute(ADDRESS_1, av);
public void setAddress2(String newAddress)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newAddress);
setAttribute(ADDRESS_2, av);
public void setCity(String newCity)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newCity);
setAttribute(CITY, av);
public void setState(String newState)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newState);
setAttribute(STATE, av);
public void setPostalCode(String newPostalCode)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newPostalCode);
setAttribute(POSTAL_C ODE, av);
public void setCountry(String newCountry)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newCountry);
setAttribute(COUNTRY, av);
public void setPhoneNumber(String newPhoneNumber)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newPhoneNumber);
setAttribute(PHONE_NUMBER, av);
public String getCompanyName()
throws IfsException{
AttributeValue av= getAttribute(COMPANY_NAME);
return av.getString(getSession());
public String getAddress1()
throws IfsException{
AttributeValue av= getAttribute(ADDRESS_1);
return av.getString(getSession());
public String getAddress2()
throws IfsException{
AttributeValue av= getAttribute(ADDRESS_2);
return av.getString(getSession());
public String getCity()
throws IfsException{
AttributeValue av= getAttribute(CITY);
return av.getString(getSession());
public String getPostalCode()
throws IfsException{
AttributeValue av= getAttribute(POSTAL_CODE);
return av.getString(getSession());
public String getCountry()
throws IfsException{
AttributeValue av= getAttribute(COUNTRY);
return av.getString(getSession());
public String getState()
throws IfsException{
AttributeValue av= getAttribute(STATE);
return av.getString(getSession());
public String getPhoneNumber()
throws IfsException{
AttributeValue av= getAttribute(PHONE_NUMBER);
return av.getString(getSession());
AsapCustomerDef.java
// Copyright (c) 2000 Movement Inc.
package publishasap.definition;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import publishasap.AsapCustomer;
* Create the definition for an AsapCustomer object.
* <P>
* @author Ian Kulmatycki
public class AsapCustomerDef extends ApplicationObjectDefinition {
* Constructor
public AsapCustomerDef(LibrarySession ifs)
throws IfsException
// Construct a Document object - standard variant.
super(ifs);
this.setClassObject(ClassObject.getClassObjectFromLabel(ifs,publishasap.AsapCustomer.CLASS_NAME));
public void setCompanyName(String newName)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newName);
setAttribute(AsapCustomer.COMPANY_NAME, av);
public void setAddress1(String newAddress)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newAddress);
setAttribute(AsapCustomer.ADDRESS_1, av);
public void setAddress2(String newAddress)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newAddress);
setAttribute(AsapCustomer.ADDRESS_2, av);
public void setCity(String newCity)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newCity);
setAttribute(AsapCustomer.CITY, av);
public void setState(String newState)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newState);
setAttribute(AsapCustomer.STATE, av);
public void setPostalCode(String newPostalCode)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newPostalCode);
setAttribute(AsapCustomer.POSTAL_CODE, av);
public void setCountry(String newCountry)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newCountry);
setAttribute(AsapCustomer.COUNTRY, av);
public void setPhoneNumber(String newPhoneNumber)
throws IfsException{
AttributeValue av= AttributeValue.newAttributeValue(newPhoneNumber);
setAttribute(AsapCustomer.PHONE_NUMBER, av);
AsapPerson.xml
<?xml version = '1.0' standalone = 'yes'?>
<!-- AsapPerson.xml -->
<ClassObject>
<Name>AsapPerson</Name>
<Description>AsapPerson Object</Description>
<Superclass Reftype = "name">ApplicationObject</Superclass>
<BeanClassPath>publishasap.AsapPerson</BeanClassPath>
<Attributes> ;
<Attribute>
<Name>prefix</Name>
<DataType>String</DataType>
<DATALENGTH>4</DATALENGTH>
</Attribute>
<Attribute>
<Name>firstName</Name>
<DataType>String</DataType>
<DATALENGTH>30</DATALENGTH>
</Attribute>
<Attribute>
<Name>mInitial</Name>
<DataType>String</DataType>
<DATALENGTH>1</DATALENGTH>
</Attribute>
<Attribute>
<Name>lastName</Name>
<DataType>String</DataType>
<DATALENGTH>30</DATALENGTH>
</Attribute>
<Attribute>
<Name>suffix</Name>
<DataType>String</DataType>
<DATALENGTH>4</DATALENGTH>
</Attribute>
<Attribute>
<Name>email1</Name>
<DataType>String</DataType>
<DATALENGTH>50</DATALENGTH>
</Attribute>
<Attribute>
<Name>email2</Name>
<DataType>String</DataType>
<DATALENGTH>50</DATALENGTH>
</Attribute>
<Attribute>
<Name>fax</Name>
<DataType>String</DataType>
<DATALENGTH>20</DATALENGTH>
</Attribute>
<Attribute>
<Name>wkPhone</Name>
<DataType>String</DataType>
<DATALENGTH>20</DATALENGTH>
</Attribute>
<Attribute>
<Name>username</Name>
<DataType>String</DataType>
<DATALENGTH>15</DATALENGTH>
</Attribute>
<Attribute>
<Name>password</Name>
<DataType>String</DataType>
<DATALENGTH>15</DATALENGTH>
</Attribute>
</Attributes>
</ClassObject>
AsapCustomer.xml
<?xml version="1.0" standalone="yes"?>
<!-- AsapCustomer.xml -->
<!-- When parsed, this file will create the definition of an AsapCustomer in the database. -->
<ClassObject>
<Name>AsapCustomer</Name>
<Description>Parent of all customers that are using Publishasap.</Description>
<SuperClass RefType="name">ApplicationObject</SuperClass>
<BeanClassPath>publishasap.AsapCustomer</BeanClassPath>
<!-- Attribute list for the object. -->
<Attributes>
<!-- The company name of the customer. -->
<Attribute>
<Name>companyName</Name>
<DataType>String</DataType>
<DataLength>75</DataLength>
</Attribute>
<!-- The mailing address of the customer. -->
<Attribute>
<Name>address1</Name>
<DataType>String</DataType>
<DataLength>50</DataLength>
</Attribute>
<!-- The secondary mailing address of the customer. -->
<Attribute>
<Name>address2</Name>
<DataType>String</DataType>
<DataLength>50</DataLength>
</Attribute>
<!-- The mailing city of the customer. -->
<Attribute>
<Name>city</Name>
<DataType>String</DataType>
<DataLength>30</DataLength>
</Attribute>
<!-- The mailing state of the customer. -->
<Attribute>
<Name>state</Name>
<DataType>String</DataType>
<DataLength>4</DataLength>
</Attribute>
<!-- The mailing postal code of the customer. -->
<Attribute>
<Name>postalCode</Name>
<DataType>String</DataType>
<DataLength>10</DataLength>
</Attribute>
<!-- The contact phone number of the customer. -->
<Attribute>
<Name>phoneNumber</Name>
<DataType>String</DataType>
<DataLength>14</DataLength>
</Attribute>
<!-- The mailing country of the customer. -->
<Attribute>
<Name>country</Name>
<DataType>String</DataT ype>
<DataLength>30</DataLength>
</Attribute>
</Attributes>
</ClassObject>
null -
Creating iFS content type require more then 4 values to be set for 1st attribute
We get the following error:
exception in thread "main" oracle.ifs.common.IfsException: IFS-30002: Unable to
create new LibraryObject
java.sql.SQLException: ORA-01400: cannot insert NULL into
("IFSSYS"."ODM_ATTRIBUTE"."SETTABLE")
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java, Compiled
Code)
at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java, Compiled
Code)
at oracle.jdbc.oci8.OCIDBAccess.parseExecuteFetch(OCIDBAccess.java:1483)
at
We were happily creating, updating and deleting various iFS content types by
declaring 'n' attributes and then setting 3 or 4 of these properties of each
one of the 'n' attributes of every content type i.e.
//First attribute of the content Type
AttributeDefinition adef1 = new AttributeDefinition(ifsSession);
//First property of the first attribute of content Type
adef1.setAttributeByUpperCaseName(Attribute.NAME_ATTRIBUTE,
AttributeValue.newAttributeValue("FIRSTNAME"));
//Second property of the first attribute of content Type
adef1.setAttributeByUpperCaseName(Attribute.DESCRIPTION_ATTRIBUTE,
AttributeValue.newAttributeValue("The firstname of the
Employee"));
//Third property of the first attribute of content Type
adef1.setAttributeByUpperCaseName(Attribute.DATATYPE_ATTRIBUTE,
AttributeValue.newAttributeValue
(Attribute.ATTRIBUTEDATATYPE_STRING));
//Fourth property of the first attribute of content Type
adef1.setAttributeByUpperCaseName(Attribute.REQUIRED_ATTRIBUTE,
AttributeValue.newAttributeValue(true));
//Fifth property of the first attribute of content Type
//We are forced to set this up. Otherwise we get above error.
//However only required for first attribute of the content type.
//Rest of the attributes (n-1) are fine.
adef1.setAttributeByUpperCaseName(Attribute.SETTABLE_ATTRIBUTE,
String.valueOf(true));
//Sixth property of the first attribute of content Type
//We are forced to set this up. Otherwise we get above error.
//However only required for first attribute of the content type.
//Rest of the attributes (n-1) are fine.
adef1.setAttributeByUpperCaseName(Attribute.UPDATEABLE_ATTRIBUTE,
String.valueOf(true));
codef0.addAttributeDefinition(adef1);
The other attributes are fine. We only need to set 3-4 properties of these
attributes and could get away with it. Only the first attribute is causing the
above problem. For other attributes of the content type, we are still setting
only the first three/four properties
If you look at the definition of iFS internal table "odm_attribute", apart from field "id", which is an implicit column, there are 12 columns which are NOT NULL.
This means for every iFS attribute it must be required to set the values
of these 12 properties. However like most of the examples in iFS doco,
you could get away with setting 3-4 properties explicitly. I am sure some
of them are set implicitly by iFS.
The problem is, sometimes these implicit setting of properties by iFS is
not working and its complaining about them. The ones which are causing
problems are SETTABLE and UPDATEABLE.
We are forced to set them explicitly. Hence the inconsistency.
The problem is, what is the reason for iFS setting "SETTABLE" and
"UPDATEABLE" implicitly for some attributes and requiring us to set them
explicitly?
Thanks and Regardshi srini,
i have includedthe char in rows. i want you to explain in detail how to use these values in the if then else statement in query.
i have created a calculated key figure 2= (formual variable =1 & keyfig a =0)* keyfig1kefig2 +not(formual variable =1 & keyfig a =0)keyfig2 *calculated keyfig1.
so this formula variable of replacement path have ref. to then char. and with what value should it replace, key, name, external char or attribut etc so that i should get the values of the char from 1 to20.
i donot to repalce with the attribute. i just want the char. values and not thier attributes (1. description 2. the second attribute has the values say abc1,efg2,ghi3 for respective charteristic values.
ie
char value desc 2nd attrib
1 hi abc1
2 bye defg2
3 ciao ghi3 -
Error Encountered while uploading HTML, PDF files via WEBUI and IFS API
Hello:
We have suddenly run into problems while using IFS to upload files. We cannot seem to upload html and pdf files using either the WEBUI or Oracle's IFS API. However we are able to add .gif, jpeg files both via the WEBUI and Oracles IFS API's
This is the error we get while trying to upload .html files via the WEBUI
IFS-30002: Unable to create new Library Object.
This is the stack trace we get when we try creating content objects via IFS API's. We can't seem to understand why something that used to work has suddenly quit working.
Does this have anything to do with running out of space requirements in the table spaces?
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject oracle.ifs.common.IfsException: IFS-32251: SQL Error inserting index entry into ODMZ_CONTEXT_ROUTER java.sql.SQLException: ORA-29875: failed in the execution of the ODCIINDEXINSERT routine
ORA-01410: invalid ROWID
ORA-01410: invalid ROWID
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1451)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:862)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1846)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1771)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2361)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:422)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:487)
at oracle.ifs.server.S_LibrarySession.execute(S_LibrarySession.java:14319)
at oracle.ifs.server.S_Media.insertIntoContextRouter(S_Media.java:2473)
at oracle.ifs.server.S_Media.postSetContent(S_Media.java:2440)
at oracle.ifs.server.S_Media.setContent(S_Media.java:1699)
at oracle.ifs.server.S_ContentObject.setContent(S_ContentObject.java:399)
at oracle.ifs.server.S_ContentObject.extendedPreInsert(S_ContentObject.java:236)
at oracle.ifs.server.S_LibraryObject.preInsert(S_LibraryObject.java:1644)
at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2711)
at oracle.ifs.server.S_LibrarySession.createSystemObjectInstance(S_LibrarySession.java:8128)
at oracle.ifs.server.S_Document.setContentObject(S_Document.java:475)
at oracle.ifs.server.S_Document.extendedPreInsert(S_Document.java:313)
at oracle.ifs.server.S_LibraryObject.preInsert(S_LibraryObject.java:1644)
at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2711)
at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java:7922)
at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7963)
at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7945)
at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_LibrarySession.java:7604)
at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySession.java:7898)
at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySession.java:5342)
at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySession.java:2969)
at ORG.oclc.da.utilities.ifs.IfsDocumentUtility.createDocumentDefinition(IfsDocumentUtility.java:238)
at ORG.oclc.da.utilities.ifs.IfsDocumentUtility.createHTML(IfsDocumentUtility.java:133)
at ORG.oclc.da.utilities.ifs.IfsDocumentUtility.createDocument(IfsDocumentUtility.java:89)
at ORG.oclc.da.chs.userinterface.CHSProcessListener.download(CHSProcessListener.java:1043)
at ORG.oclc.da.chs.core.Spider.download(Spider.java:605)
at ORG.oclc.da.chs.core.CHSTest_raj.main(CHSTest_raj.java:145)
Any help on this front is appreciated.
thanks
Mathangitry this code, it works fine for me:
<%@ page import="java.io.*"%>
<%
String name = "C:/temp/EURO_Weekly_wk01-10-26.pdf";
try
InputStream in = new FileInputStream(name);
int n = 0;
//read the file from the input stream to the byte buffer
out.clear();
response.setContentType("application/pdf");
while( (n=in.read()) != -1)
out.write (n);
out.close();
catch (IOException ioe) {
out.println ("io error: " + ioe.getMessage());
return;
%> -
IFS problems with 8.1.6.1.0
I had IFS working ok. Haven't tried it in a couple weeks. Installed the 8.1.6.1.0 patch for 8i on Solaris. I can still map an IFS drive through my windows client, can get documents but can't write new files out there. Get the error: Error Copying File. Cannot copy image1.jpg: Cannot find the specified file. Make sure you specify the correct path and filename.
When I try to upload via the web interface, I get the error: IFS-30002 Unable to create new LibraryObjectLUIS Here is the session from part of my SmbServer.log:
logon: guest from DOOG on Mon May 22 10:47:10 EDT 2000
logon: colerick from DOOG on Mon May 22 10:47:14 EDT 2000
Exception: IFS-30002: Unable to create new LibraryObject
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
oracle.ifs.common.IfsException: IFS-32225: Error storing reference to content object 8,170 in media IndexedBlob
java.sql.SQLException: ORA-04045: errors during recompilation/revalidation of IFSSYS.INDEXEDBLOB_I
ORA-29835: ODCIGETINTERFACES routine does not return required interface(s)
ORA-29835: ODCIGETINTERFACES routine does not return required interface(s)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at java.sql.SQLException.<init>(Compiled Code)
at oracle.jdbc.dbaccess.DBError.throwSqlException(Compiled Code)
at oracle.jdbc.oci8.OCIDBAccess.check_error(Compiled Code)
at oracle.jdbc.oci8.OCIDBAccess.executeFetch(Compiled Code)
at oracle.jdbc.oci8.OCIDBAccess.parseExecuteFetch(Compiled Code)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecute(Compiled Code)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Compiled Code)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(Compiled Code)
at oracle.jdbc.driver.OraclePreparedStatement.execute(Compiled Code)
at oracle.ifs.server.S_MediaBlob.createBlobReference(Compiled Code)
at oracle.ifs.server.S_MediaBlob.newEmptyContent(Compiled Code)
at oracle.ifs.server.S_Media.setContent(Compiled Code)
at oracle.ifs.server.S_ContentObject.setContent(Compiled Code)
at oracle.ifs.server.S_ContentObject.extendedPreInsert(Compiled Code)
at oracle.ifs.server.S_LibraryObject.preInsert(Compiled Code)
at oracle.ifs.server.S_LibraryObject.createInstance(Compiled Code)
at oracle.ifs.server.S_LibrarySession.createSystemObjectInstance(Compiled Code)
at oracle.ifs.server.S_Document.setContentObject(Compiled Code)
at oracle.ifs.server.S_Document.extendedPreInsert(Compiled Code)
at oracle.ifs.server.S_LibraryObject.preInsert(Compiled Code)
at oracle.ifs.server.S_LibraryObject.createInstance(Compiled Code)
at oracle.ifs.server.S_LibrarySession.newLibraryObject(Compiled Code)
at oracle.ifs.server.S_LibrarySession.newPublicObject(Compiled Code)
at oracle.ifs.server.S_LibrarySession.newPublicObject(Compiled Code)
at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(Compiled Code)
at oracle.ifs.beans.LibrarySession.DMNewPublicObject(Compiled Code)
at oracle.ifs.beans.LibrarySession.NewPublicObject(Compiled Code)
at oracle.ifs.beans.LibrarySession.createPublicObject(Compiled Code)
at oracle.ifs.protocols.smb.server.DbFile.open(Compiled Code)
at oracle.ifs.protocols.smb.server.DbFile.<init>(Compiled Code)
at oracle.ifs.protocols.smb.server.DbTree.createFile(Compiled Code)
at oracle.ifs.protocols.smb.server.ComSmb.replyOpenAndX(Compiled Code)
at oracle.ifs.protocols.smb.server.ComSmb.process(Compiled Code)
at oracle.ifs.protocols.smb.server.ComSmb.handleSmbMessage(Compiled Code)
at oracle.ifs.protocols.smb.server.SmbThread.handleNbMessage(Compiled Code)
at oracle.ifs.protocols.smb.server.SmbThread.readPackets(Compiled Code)
at oracle.ifs.protocols.smb.server.SmbThread.run(Compiled Code)
THE JWS.log file has a few sections like the following....
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
javawebserver: ORA-29835: ODCIGETINTERFACES routine does not return required interface(s)
javawebserver:
javawebserver: at java.lang.Throwable.<init>(Compiled Code)
javawebserver: at java.lang.Exception.<init>(Compiled Code)
javawebserver: at java.sql.SQLException.<init>(Compiled Code)
javawebserver: at oracle.jdbc.dbaccess.DBError.throwSqlExcep tion(Compiled Code)
javawebserver: at oracle.jdbc.oci8.OCIDBAccess.check_error(Compiled Code)
javawebserver: at oracle.jdbc.oci8.OCIDBAccess.executeFetch(Compiled Code)
javawebserver: at oracle.jdbc.oci8.OCIDBAccess.parseExecuteFetch(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.executeNonQuery(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.doExecuteOther(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.doExecuteWithBatch(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.doExecute(Compiled Code)
javawebserver: at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Compiled Code)
javawebserver: at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(Compiled Code)
javawebserver: at oracle.jdbc.driver.OraclePreparedStatement.execute(Compiled Code)
javawebserver: at oracle.ifs.server.S_MediaBlob.createBlobReference(Compiled Code)
javawebserver: at oracle.ifs.server.S_MediaBlob.getOutputStream(Compiled Code)
javawebserver: at oracle.ifs.server.S_Media.setContentStream(Compiled Code)
javawebserver: at oracle.ifs.server.S_Media.setContent(Compiled Code)
javawebserver: at oracle.ifs.server.S_ContentObject.setContent(Compiled Code)
javawebserver: at oracle.ifs.server.S_ContentObject.extendedPreInsert(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibraryObject.preInsert(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibraryObject.createInstance(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibrarySession.createSystemObjectInstance(Compiled Code)
javawebserver: at oracle.ifs.server.S_Document.setContentObject(Compiled Code)
javawebserver: at oracle.ifs.server.S_Document.extendedPreInsert(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibraryObject.preInsert(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibraryObject.createInstance(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibrarySession.newLibraryObject(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibrarySession.newPublicObject(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibrarySession.newPublicObject(Compiled Code)
javawebserver: at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(Compiled Code)
javawebserver: at oracle.ifs.beans.LibrarySession.DMNewPublicObject(Compiled Code)
javawebserver: at oracle.ifs.beans.LibrarySession.NewPublicObject(Compiled Code)
javawebserver: at oracle.ifs.beans.LibrarySession.createPublicObject(Compiled Code)
javawebserver: at oracle.ifs.clients.webui.MultiPartRequest.processFile(Compiled Code)
javawebserver: at oracle.ifs.clients.webui.MultiPartRequest.processHeaders(Compiled Code)
javawebserver: at oracle.ifs.clients.webui.MultiPartRequest.processRequest(Compiled Code)
javawebserver: at oracle.ifs.clients.webui.MultiPartRequest.<init>(Compiled Code)
javawebserver: at ifs.webui._jsps._upload2._jspService(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.pagecompile.jsp.runtime.HttpJspBase.service(Compiled Code)
javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.runServlet(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.processJspPage(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.service(Compiled Code)
javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
javawebserver: at com.sun.server.ServletState.callService(Compiled Code)
javawebserver: at com.sun.server.ServletManager.callServletService(Compiled Code)
javawebserver: at com.sun.server.ProcessingState.invokeTargetServlet(Compiled Code)
javawebserver: at com.sun.server.http.HttpProcessingState.execute(Compiled Code)
javawebserver: at com.sun.server.http.stages.Runner.process(Compiled Code)
javawebserver: at com.sun.server.ProcessingSupport.process(Compiled Code)
javawebserver: at com.sun.server.Service.process(Compiled Code)
javawebserver: at com.sun.server.http.HttpServiceH andler.handleRequest(Compiled Code)
javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(Compiled Code)
javawebserver: at com.sun.server.HandlerThread.run(Compiled Code)
javawebserver:
javawebserver: java.lang.RuntimeException: java.lang.Exception: No Path Specified
javawebserver: at java.lang.Throwable.<init>(Compiled Code)
javawebserver: at java.lang.Exception.<init>(Compiled Code)
javawebserver: at java.lang.RuntimeException.<init>(Compiled Code)
javawebserver: at oracle.ifs.clients.webui.ContainerDisplayDirectory.find(Compiled Code)
javawebserver: at oracle.ifs.clients.webui.GetContents.GetContents(Compiled Code)
javawebserver: at ifs.webui._jsps._container._jspService(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.pagecompile.jsp.runtime.HttpJspBase.service(Compiled Code)
javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.runServlet(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.processJspPage(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.service(Compiled Code)
javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
javawebserver: at com.sun.server.ServletState.callService(Compiled Code)
javawebserver: at com.sun.server.ServletManager.callServletService(Compiled Code)
javawebserver: at com.sun.server.ProcessingState.invokeTargetServlet(Compiled Code)
javawebserver: at com.sun.server.http.HttpProcessingState.execute(Compiled Code)
javawebserver: at com.sun.server.http.stages.Runner.process(Compiled Code)
javawebserver: at com.sun.server.ProcessingSupport.process(Compiled Code)
javawebserver: at com.sun.server.Service.process(Compiled Code)
javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(Compiled Code)
javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(Compiled Code)
javawebserver: at com.sun.server.HandlerThread.run(Compiled Code)
javawebserver: oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
javawebserver: ORA-29835: ODCIGETINTERFACES routine does not return required interface(s)
javawebserver:
Regards,
null -
How can i add custom attributes to a new Class Object using the API ?
Hello everyone,
Here is my problem. I just created a subclass of Document using the API (not XML), by creating a ClassObjectDefinition and a ClassObject. Here is the code :
// doc is an instance of Document
ClassObject co = doc.getClassObject();
ClassObjectDefinition cod = new ClassObjectDefinition(ifsSession);
cod.setSuperclass(co);
cod.setSuperclassName(co.getName());
cod.setName("MYDocument");
ClassObject c = (ClassObject)ifsSession.createSchemaObject(cod);
Everything seems to be OK since i can see the new class when i use ifsmgr. But my question is : how can i add custom attributes to this new class ? Here is what i tried :
AttributeDefinition value = new AttributeDefinition(ifsSession);
value.setAttribute("FOO", AttributeValue.newAttributeValue("bar"));
c.addAttribute(value);
But i got the following error message :
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
java.sql.SQLException: ORA-01400: impossible d'insirer NULL dans ("IFSSYS"."ODM_ATTRIBUTE"."DATATYPE")
oracle.ifs.server.S_LibraryObjectData oracle.ifs.beans.LibrarySession.DMNewSchemaObject(oracle.ifs.server.S_LibraryObjectDefinition)
oracle.ifs.beans.SchemaObject oracle.ifs.beans.LibrarySession.NewSchemaObject(oracle.ifs.beans.SchemaObjectDefinition)
oracle.ifs.beans.SchemaObject oracle.ifs.beans.LibrarySession.createSchemaObject(oracle.ifs.beans.SchemaObjectDefinition)
void fr.sword.ifs.GestionDocument.IFSDocument.createDocument(java.lang.String)
void fr.sword.ifs.GestionDocument.IFSDocument.main(java.lang.String[])
So, what am i doing wrong ?
More generally, are we restricted in the types of the attributes ? (for example, would it be possible to add an attribute that would be an inputStream ? Or an object that i have already created ?).
Any help would be appreciated. Thanks in advance.
Guillaume
PS : i'm using Oracle iFS 1.1.9 on NT4 SP6 and Oracle 8.1.7
nullHi Guillaume,
you're welcome. Don't know exactly, but assume that ATTRIBUTEDATATYPE_UNKNOWN
is used to check for erronous cases only
and it shouldn't be used otherwise.
Creating your own objects could be simply done via
ClassObject ifsClassObject;
DocumentDefinition ifsDocDef = new DocumentDefinition(ifsSession);
// get class object for my very own document
ifsClassObject = ClassObject.getClassObjectFromLabel(ifsSession, "MYDOCUMENT");
// set the class for the document i'd like to create
ifsDocDef.setClassObject(ifsClassObject);
// set attributes and content for the document...
ifsDocDef.setAttribute("MYFOO_ATTRIBUTE",....);
ifsDocDef.setContent("This is the content of my document");
// create the document...
PublicObject doc = ifsSession.createPublicObject(ifsDocDef);
null -
Problem creating items in a folder owned by another user
Hi
Iam getting an exception when i try to create a folder owned (or shall i say) created by another user.Let me explain what iam doing :
1. I have created a folder "INPRISE" under "/home".I have
created an ACL "MyAcl" having group INPRISEGROUP
as the ACE having all permissions.I have set the ACL "MyAcl" on the folder "INPRISE".
2. I have created two users i1 and i2
and placed them in the group INPRISEGROUP .Both these users have a link under thei home folder to "INPRISE" folder(achieved by using and addItem()).
3. I could successfully login as i1 and create a folder "WebApps" under "INPRISE" and upload a document "A.txt" under "WebApps".
4.But when i log in as "i2" and try to create a document "B.txt" under "WebApps" which was created by user "i1" i get the following exception :
javawebserver: Got the user
javawebserver: got the primary user profile
javawebserver: THE HOME FOLDER IS --> i1
javawebserver: The home folder name is --> i1
javawebserver: home folder
javawebserver: Got the user
javawebserver: got the primary user profile
javawebserver: THE HOME FOLDER IS --> i1
javawebserver: The home folder name is --> i1
javawebserver: home folder
javawebserver: Got the user
javawebserver: got the primary user profile
javawebserver: THE HOME FOLDER IS --> i1
javawebserver: The home folder name is --> i1
javawebserver: home folder
javawebserver: **********Creating document in /home/i1/INPRISE/WebApps
javawebserver: Created document..
javawebserver: Setting permissions for the document....
javawebserver: setting the access level
javawebserver: Got the user
javawebserver: got the primary user profile
javawebserver: THE HOME FOLDER IS --> i2
javawebserver: The home folder name is --> i2
javawebserver: home folder
javawebserver: Got the user
javawebserver: got the primary user profile
javawebserver: THE HOME FOLDER IS --> i2
javawebserver: The home folder name is --> i2
javawebserver: home folder
javawebserver: Got the user
javawebserver: got the primary user profile
javawebserver: THE HOME FOLDER IS --> i2
javawebserver: The home folder name is --> i2
javawebserver: home folder
javawebserver: **********Creating document in /home/i2/INPRISE/WebApps
javawebserver: Error while creating document.....
javawebserver: oracle.ifs.common.IfsException: IFS-30002: Unable to create new
LibraryObject
javawebserver: oracle.ifs.common.IfsException: IFS-30048: Insufficient access t
o add items to a Folder
javawebserver: oracle.ifs.common.IfsException: IFS-30030: Permission not grante
d on specified ACL
javawebserver: at java.lang.Throwable.<init>(Compiled Code)
javawebserver: at java.lang.Exception.<init>(Compiled Code)
javawebserver: at org.omg.CORBA.UserException.<init>(Compiled Code)
javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
javawebserver: at oracle.ifs.common.IfsException.<init>(Compiled Code)
javawebserver: at oracle.ifs.server.S_AccessControlList.verifyStandardPermissi
onEnabled(S_AccessControlList.java:602)
javawebserver: at oracle.ifs.server.S_PublicObject.verifyPublicObjectPermissio
n(S_PublicObject.java:2169)
javawebserver: at oracle.ifs.server.S_Folder.verifyCanAddItem(S_Folder.java:10
05)
javawebserver: at oracle.ifs.server.S_Folder.addReference(S_Folder.java:719)
javawebserver: at oracle.ifs.server.S_Folder.addReference(S_Folder.java:697)
javawebserver: at oracle.ifs.server.S_PublicObject.postCreateAddToFolder(S_Pub
licObject.java:2753)
javawebserver: at oracle.ifs.server.S_PublicObject.extendedPostInsert(S_Public
Object.java:995)
javawebserver: at oracle.ifs.server.S_LibraryObject.postInsert(S_LibraryObject
.java:1341)
javawebserver: at oracle.ifs.server.OperationState.executeAtomicOperations(Com
piled Code)
javawebserver: at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryOb
ject.java:2348)
javawebserver: at oracle.ifs.server.S_LibrarySessio n.newLibraryObject(S_Librar
ySession.java:6596)
javawebserver: at oracle.ifs.server.S_LibrarySession.newPublicObject(S_Library
Session.java:6637)
javawebserver: at oracle.ifs.server.S_LibrarySession.newPublicObject(S_Library
Session.java:6619)
javawebserver: at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_Libra
rySession.java:6407)
javawebserver: at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySes
sion.java:6913)
javawebserver: at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySessi
on.java:4564)
javawebserver: at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySe
ssion.java:2562)
javawebserver: at oracle.ifs.utils.common.PublicObjectUtilities.createDocument
(PublicObjectUtilities.java:537)
javawebserver: at oracle.ifs.utils.common.PublicObjectUtilities.putAsDocumentW
ithVersioning(PublicObjectUtilities.java:163)
javawebserver: at oracle.ifs.adk.filesystem.IfsFileSystem.createDocument(IfsFi
leSystem.java:922)
javawebserver: at dp.DPDocManager.uploadDocument(DPDocManager.java:374)
javawebserver: at ifs.jsp_sbin._dp._dpDoc._jspService(_dpDoc.java:115)
javawebserver: at oracle.ifs.protocols.http.jsp.pagecompile.jsp.runtime.HttpJs
pBase.service(HttpJspBase.java:94)
javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.runServlet(IfsJs
pServlet.java:865)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.processJspPage(C
ompiled Code)
javawebserver: at oracle.ifs.protocols.http.jsp.IfsJspServlet.service(IfsJspSe
rvlet.java:240)
javawebserver: at javax.servlet.http.HttpServlet.service(Compiled Code)
javawebserver: at com.sun.server.ServletState.callService(ServletState.java:22
6)
javawebserver: at com.sun.server.ServletManager.callServletService(ServletMana
ger.java:936)
javawebserver: at com.sun.server.ProcessingState.invokeTargetServlet(Processin
gState.java:423)
javawebserver: at com.sun.server.http.HttpProcessingState.execute(HttpProcessi
ngState.java:79)
javawebserver: THE ERROR MESSAGE IS IFS-30002: Unable to create new LibraryObje
ct
javawebserver: Setting permissions for the document....
javawebserver: setting the access level
javawebserver: at com.sun.server.http.stages.Runner.process(Runner.java:79)
javawebserver: at com.sun.server.ProcessingSupport.process(Compiled Code)
javawebserver: at com.sun.server.Service.process(Service.java:204)
javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(HttpSer
viceHandler.java:374)
javawebserver: at com.sun.server.http.HttpServiceHandler.handleRequest(Compile
d Code)
javawebserver: at com.sun.server.HandlerThread.run(Compiled Code)
javawebserver:
javawebserver:
javawebserver: Error during JSP page processing: /ifs/jsp-bin/dp/dpDoc.jsp
javawebserver: java.lang.NullPointerException
The Code is :
package dp;
import oracle.ifs.beans.*;
import oracle.ifs.common.*;
import oracle.ifs.beans.parsers.*;
import oracle.ifs.adk.security.*;
import oracle.ifs.adk.filesystem.*;
import java.io.*;
import java.util.Locale;
import javax.servlet.http.*;
* The document manager bean for the Deal Planner app.
* <p>
* This class provides a login session/creates a new account in the IFS. The class
* implements the <code>IfsHttpLogin</code> interface so it can share login data with other
* beans.
* @author Srinivas Sampige
* @version 1.0
* @see IfsHttpLogin
public class DPDocManager implements IfsHttpLogin
private String userName = "";
private LibrarySession ifsSession = null;
private FolderPathResolver fPathResolver = null;
private IfsFileSystem ifsFileSystem; // File System object
public DPDocManager()
{//does nothing
*Creates a new account in the IFS for
*a new deal when the deal code is passed in.
*@ param dealCode The deal code of the deal for which an account has to be created
*@ param password A system generate d password for the account being created.
*@ return String Will return "SUCCESS" on creating the account or the reason if an
* error occurrs.
public String createDealFolder(String dealCode)
String result = "SUCCESS";
try
ifsSession = getIfsConnection("system","manager","ServerManager","i5ifs");
ifsSession.setAdministrationMode(true);
//create a new folder for this deal
Folder dealFolder = createFolder("/home",dealCode);
//create a group for this deal;place the group as
//an access control entry in an access control list.
//Set the access control list to the folder.
AccessControlList acl = createDealGroup(dealCode);
dealFolder.setAcl(acl);
ifsSession.setAdministrationMode(false);
}catch(IfsException ie)
int code = ie.getErrorCode();
System.out.println("THE ERROR CODE WHILE CREATING DEAL FOLDER IS -- "+code);
ie.printStackTrace();
result = ie.getMessage();
return result;
}//createDealFolder
public String createUser(String userId,String password,String dealCode)
String result = "SUCCESS";
System.out.println("Creating user and adding to a group "+userId);
try
this.ifsSession = getIfsConnection("system","manager","ServerManager","i5ifs");
ifsSession.setAdministrationMode(true);
System.out.println("Logged in successully");
//form the XML necessary for creating the simple user;
//the new user in the IFS will be the Deal.User id will be the deal code;
//password is fetched from the DEALS table.
String simpleUserString = "<?xml version = '1.0' standalone = 'yes'?>\n"
+ "<SimpleUser>\n"
+ " <UserName>"+userId+"</UserName>\n"
+ " <Password>"+userId+"</Password>\n"
+ " <HomeFolderRoot>/home</HomeFolderRoot>\n"
+ "</SimpleUser>\n";
System.out.println("Parsing "+simpleUserString);
//invoke the XML parser for creating the new user
StringReader userDefinition = new StringReader(simpleUserString);
SimpleXmlParser xmlParser = new SimpleXmlParser(ifsSession);
xmlParser.parse(userDefinition,null,null);
//a valid user for a deal must belong to the deals group;add the user
//to the appropriate group for the deal
String userToGroupString = "<?xml version = '1.0' standalone = 'yes'?>\n"
+ "<DirectoryGroup>\n"
+ " <Update reftype='Name'>" + dealCode+"Group" + "</Update>\n"
+ " <Members>"
+ " <Member reftype='Name'>" + userId + "</Member>"
+ " </Members>"
+ "</DirectoryGroup>\n";
//invoke the XML parser for adding the new user to the group
StringReader groupUpdate = new StringReader(userToGroupString);
xmlParser = new SimpleXmlParser(ifsSession);
LibraryObject lo = xmlParser.parse(groupUpdate,null,null);
System.out.println ("The LO returned by parse is " + lo);
//link this user's home folder to the deal folder
Collection c = ifsSession.getDirectoryUserCollection();
DirectoryUser du = (DirectoryUser) c.getItems(userId);
System.out.println("The DirectoryUser created is " + du.getDistinguishedName());
//Folder homeFolder = (Folder) getIfsFileSystem().findPublicObjectByPath("/home/"+dealCode);
Folder homeFolder = du.getPrimaryUserProfile().getHomeFolder();
System.out.println("Home folder is"+homeFolder);
homeFolder.addItem((Folder)getIfsFileSystem().findPublicObjectByPath("/home/"+dealCode));
System.out.println("Created a link to the deal folder... ");
ifsSession.setAdministrationMode(false);
}catch(IfsException ie)
IfsException.setVerboseMessage(true);
ie.printStackTrace();
return result;
}//public
/* public String addUserToGroup(String groupName)
try
InternetFileSystem ifs = getFileSystem();
ifs.findPublicObjectByPath(goupName);
}catch(IfsException ie)
ie.setVerboseMessage(true);
System.out.println("Problem while adding user to the group "+ie.getMessage());
ie.printStackTrace();
}//addUserToGroup
*This method creates a group that for a particular deal.
*All members having access to this deal must belong to thi s
* group.
public AccessControlList createDealGroup(String dealCode)
AccessControlList acl = null;
try
DirectoryGroupDefinition def = new DirectoryGroupDefinition(ifsSession);
def.setAttribute("NAME",AttributeValue.newAttributeValue(dealCode+"Group"));
DirectoryGroup dealGroup = (DirectoryGroup)ifsSession.createPublicObject(def);
AccessControlListDefinition aclDef = new AccessControlListDefinition(ifsSession);
AccessControlEntryDefinition aceDef = new AccessControlEntryDefinition(ifsSession);
AccessLevel aLevel = new AccessLevel();
aLevel.enableAllStandardPermissions();
aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_ADDITEM);
aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_CREATE);
aLevel.disableStandardPermission(AccessLevel.ACCESSLEVEL_ALL);
aceDef.setGrantee(dealGroup);
aceDef.setDistinctAccessLevel(aLevel);
aclDef.addAceDefinition(aceDef);
acl = (AccessControlList) ifsSession.createPublicObject(aclDef);
acl.setName(dealCode+"ACL");
}catch(IfsException ie)
System.out.println("error while creating group for deal");
IfsException.setVerboseMessage(true);
ie.printStackTrace();
return acl;
}//createUser
*makes a connection the the IFS and returns the LibrarySession object.
*@param userName user name for a valid IFS account.
*@param password password for a valid IFS account.
*@param serviceName the IFS service name.
*@param schemaPassword the IFS schema password.
private LibrarySession getIfsConnection(String username, String password, String serviceName,
String schemaPassword) throws IfsException
LibraryService service = new LibraryService();
CleartextCredential me = new CleartextCredential(username, password);
ConnectOptions connection = new ConnectOptions();
connection.setLocale(Locale.getDefault());
connection.setServiceName(serviceName);
connection.setServicePassword(schemaPassword);
ifsSession = service.connect(me, connection);
fPathResolver = new FolderPathResolver(ifsSession);
ifsFileSystem = new IfsFileSystem(ifsSession);
return ifsSession;
}//getIfsConnection()
public String loginToIfs(String userName,String password,String serviceName,String schemaPassword)
String result = "SUCCESS";
try
getIfsConnection(userName,password,serviceName,schemaPassword);
this.userName = userName;
//getResolver().setHomeFolder("/home/"+userName);
}catch(IfsException ie)
int code = ie.getErrorCode();
System.out.println("ERROR CODE "+code);
result = "FAILED -- "+code+" -- "+ie.getMessage();
System.out.println("Failed to login "+ie.getMessage());
ie.printStackTrace();
return result;
}//loginToIfs
public LibrarySession getSession()
return ifsSession;
}//getSession()
public FolderPathResolver getResolver()
return fPathResolver;
public IfsFileSystem getIfsFileSystem()
return ifsFileSystem;
public Folder getHomeFolder()
Folder homeFolder = null;
try
DirectoryUser user = ifsSession.getUser();
System.out.println("Got the user");
PrimaryUserProfile primary = user.getPrimaryUserProfile();
System.out.println("got the primary user profile");
homeFolder = primary.getHomeFolder();
System.out.println("THE HOME FOLDER IS --> "+homeFolder);
System.out.println("The home folder name is --> "+homeFolder.getName());
}catch(IfsException ie)
ie.printStackTrace();
System.out.println("home folder");
return homeFolder;
}//getHomeFolderPath()
* Called when this object is bound to the HTTP session object.
* @param event The event when the object is bound to the Http session.
public void valueBound(HttpSessionBindingEvent event)
// do nothing
* Called when this object is unbound from the HTTP session object.
* @param event The event when the object is unbound to the Http session.
public void valueUnbound(HttpSessionBindingEvent event)
//release the reources like the ifsSession etc.
fPathResolver = null;
try
if (ifsSession != null)
ifsSession.di sconnect();
}catch (IfsException e)
e.printStackTrace();
finally
ifsSession = null; // release the resources
}//valueUnbound()
public Folder createFolder(Folder destinationFolder,String theNewFolderPath)
Folder createdFolder = null;
try
System.out.println("<*---*> IN THE FOLDER "+destinationFolder);
IfsFileSystem ifs = getIfsFileSystem();
System.out.println("Creating the folder..");
createdFolder = ifs.createFolder(theNewFolderPath,destinationFolder,true,null);
System.out.println("Created the folder..");
}catch(IfsException ie)
System.out.println("ERROR CREATING A FOLDER IN THE DESTINATION FOLDER");
IfsException.setVerboseMessage(true);
ie.printStackTrace();
return createdFolder;
}//createFolder(String inTheFolder,theNewFolder)
public Folder createFolder(String inTheFolder,String theNewFolderPath)
Folder createdFolder = null;
try
System.out.println("<*---*> IN THE FOLDER "+inTheFolder);
IfsFileSystem ifs = getIfsFileSystem();
System.out.println("Creating ANOTHER folder for test");
Folder destinationFolder = (Folder) ifs.findPublicObjectByPath("/"+inTheFolder);
System.out.println("The destination folder is "+destinationFolder);
/* Folder destinationFolderMyTest = (Folder) ifs.findPublicObjectByPath("/home/c6/COREL/MY-TEST/");
System.out.println("The destination folder my test is "+destinationFolderMyTest);*/
createdFolder = ifs.createFolder(theNewFolderPath,destinationFolder,true,null);
/* System.out.println("Created folder in destination folder ");
createdFolder = ifs.createFolder(theNewFolderPath,(Folder) ifs.findPublicObjectByPath(inTheFolder),true,null);
System.out.println("Created folder in MY-TEST ");*/
}catch(IfsException ie)
System.out.println("ERROR CREATING A FOLDER IN THE DESTINATION FOLDER");
IfsException.setVerboseMessage(true);
ie.printStackTrace();
return createdFolder;
}//createFolder(String inTheFolder,theNewFolder)
*Method creates a folder in the path specified(the path includes the name of the folder
*to be created).If a parent of any of the folders in the path
*is not found then that folder is automatically created.
public String createFolder(String folderPath)
System.out.println("*-*-*-*-* Creating folder *-*-*-*-*");
String result = "SUCCESS";
try
//ifsSession.setAdministrationMode(true);
IfsFileSystem ifs = new IfsFileSystem(ifsSession);
Folder folder = (Folder) ifs.findPublicObjectByPath("home/"+userName);
ifs.createFolder(folderPath,(Folder) folder,true,null);
}catch(IfsException ie)
result = ie.getMessage();
ie.printStackTrace();
return result;
}//createFolder
//Upload a document to the ifs
public Document uploadDocument(String localPath,String destinationPath)
Document document = null;
try
IfsFileSystem ifs = new IfsFileSystem(ifsSession);
FileInputStream fis = new FileInputStream(localPath);
System.out.println("**********Creating document in "+destinationPath);
document = ifs.createDocument("B.txt", fis, destinationPath, null, false, null);
System.out.println("Created document..");
}catch(IfsException e)
System.out.println("Error while creating document.....");
IfsException.setVerboseMessage(true);
e.printStackTrace();
System.out.println("THE ERROR MESSAGE IS "+e.getMessage());
catch(Exception e)
System.out.println("File not found/io exception ");
e.printStackTrace();
return document;
}//uploadDocument
* Adds an access control entry to the public object passed in.
*@param PublicObject the publicObject for which permissions have to be set.
public void setAccessControlOnObject(PublicObject publicObject)
try
System.out.println("Setting permissions for the document....");
AccessControlListDefinition aclDef = new AccessControlListDefinition();
aclDef.setName(publicObject+"ACL");
AccessControlEntryDefinition aceDef = new AccessControlEntryDefinition();
//this sets the acceess control entry's granntee as the "user" who ha s loggen on
aceDef.setGrantee(ifsSession.getDirectoryUser());
aceDef.enableGrantToWorld(false);
String[] permissions = {"ACCESSLEVEL_NONE"};
System.out.println("setting the access level");
AccessLevel accessLevel = new AccessLevel(permissions);
/*PermissionBundleDefinition pbDef = new PermissionBundleDefinition(ifsSession);
PermissionBundle pb = (PermissionBundle) ifsSession.createSystemObject(pbDef);
pbDef.setAccessLevel(accessLevel);
pbDef.setAccessLevel(accessLevel);
aceDef.addPermissionBundle(pb);*/
aceDef.setDistinctAccessLevel(accessLevel);
aclDef.addAceDefinition(aceDef);
AccessControlList acl = (AccessControlList) ifsSession.createPublicObject(aclDef);
publicObject.setAcl(acl);
}catch(IfsException ie)
System.out.println("The error while settin access control is -0> "+ie.getMessage());
ie.setVerboseMessage(true);
ie.printStackTrace();
}//createAccessControlList
}//class DPDocManager
Note : since iam still experimenting with the code please ignore any irrelevant/wrong commenting.Iam using method "CreateDealFolder()" to create the folder "INPRISE" and "CreateUser()" to create users "i1","i2"Iam not able to set the main folder's (i.e INPRISE) acl (MyAcl) on the subfolder "MyFolder" because the owner of MyAcl is "system" whereas the owner of MyFolder is user "i1" .Which is the best way of solving these ownership issue which iam running into ? I want to be able to create different folders ,assign a group of uers to each of the folders who can create as well as modify,delete each other's folders/documents (as i have mentioned in my first post in this thread) ?
thanks
Srinivas -
Creating a Document from an uploaded file
Hi,
I'm trying to create a Document through a JSP, from a file already on the local hard drive. The line that is causing the error in the JSP is:
Document doc = ifs.createDocument( "createdoctest", new FileInputStream("D:\\oracle\\ora81\\ifs1.1\\jws\\public_html\\upload\\test.txt" ), ".", null, false, null );
I'm basically trying to copy the file test.txt into the iFS repository by creating the Document.
The error is:
oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
What have I done wrong here?
Thanks!
nullHi,
I tried your code and it worked for me.
below is my code
FolderPathResolver fpr = new FolderPathResolver(ifSession);
IfsFileSystem ifsFile = new IfsFileSystem (ifSession);
PublicObject pObject = fpr.findPublicObjectByPath("/home/user");
if (pObject != null){
Document doc = ifsFile.createDocument( "createdoctest", new FileInputStream("C:\\Temp\\application.pdf"), ".", null, false, null );
doc.setOwner( pObject.getOwner() );
Good luck
Suresh
Maybe you are looking for
-
Keyboard short cut not working in iOS 6 on iPhone
I just tried adding a new keyboard short cut on my iPhone 4S with iOS 6 and the short cut will not stay on the phone. I can enter it and it is added to the list of short cuts until I go back one screen, then the shor cut disappears. This worked fin
-
How do I get XP2200+ up to speed1800MHZ?
Am I getting what I should for performance i.e. CPU freq of 1350? I am a serious gamer using sims like MS CFS2 and FS2004 WHAT I HAVE: current CPU clock is 1350MHZ CPU/FSB clock is 100MHZ current DRAM clock is 166MHZ I have been reading posts for two
-
Wage type amounts in cluster PCL4
Hi all, I am trying to capture the wage type amount changes in infotype logging. enables infotype logging. Used function module 'HR_INFOTYPE_LOG_GET_LIST' and HR_INFOTYPE_LOG_GET_DETAIL to retrieve the change data. So far so fine. But the structuer r
-
Folio order in a multi folios application
I've 8 folios ready to be published in my multi-folio app. But when I published them, they appear in a random order instead of in the publication time order. How can I fix this ?
-
Copy and Paste in OSX10.6.2
Hello, when i am copying and pasting a textframe in an appleworks draw document, the pasted textframe becomes a picture. It can't be edited any more! And there is no redo! The same behaviour in a text document. A pasted text frame as an inline-object