http://www.Alexyscorp.com email info@alexys.us Webutil Settings Requirements Download Jacob 1.8 archive and webutil 1.06 (Download http://prdownloads.sourceforge.net/jacob-project/jacob_18.zip and extract to a temporary staging area. Do not attempt to use 1.7 or 1.9. webutil can be downloaded from http://otn.oracle.com ) 1. Database Setup Login as SYS create user webutil identified by webutil$123 default tablespace users temporary tablespace temp; grant connect, create session, create procedure, create public synonym to webutil; grant resource, connect to webutil; grant execute on dbms_lob to webutil; login as webutl user and run create_webutil_db.sql create public synonym webutil_db for webutil.webutil_db; grant execute on webutil_db to public; set serveroutput on declare a boolean; begin a:=webutil_db.closeblob(1); If a then dbms_output.put_line('webutil/blob setup '||'TRUE'); else dbms_output.put_line(' webutil/blob setup '||'FALSE'); end if; end; 2. copy jacob.jar and copy frmwebutil.jar to ORACLE_HOME/forms/java directory. Make sure you can download these using the below http://machinename.com/forms/java/jacob.jar http://machinename.com/forms/java/frmwebutil.jar 3. Create directory webutil under [OraHome]/forms/webutil and . copy jacob.dll , JNIsharedstubs.dll, d2kwutil.dll Check the permissions. Read /Execute 1 http://www.Alexyscorp.com email info@alexys.us 4. Forms.conf AliasMatch ^/forms/webutil/(..*) $ORACLE_HOME/forms/webutil/$1" http://machinename.com/forms/webutil/jacob.dll http://machinename.com/forms/webutil/JNIsharedstubs.dll http://machinename.com/forms/webutil/d2kwutil.dll 5. In the default.env update WEBUTIL_CONFIG=/opt/oracle/product/10gas/forms/server/webutil.cfg CLASSPATH=c:\temp\webutil\lib\frmwebutil.jar;c:\"Program Files"\Java\j2re1.4.2_06\lib\rt.jar (Include rt.jar) Also include C:\Dev10g\forms\java\ frmall.jar 6. Settings for webutil.cfg logging.file=c:\temp\webutil.log logging.enabled=TRUE logging.errorsonly=TRUE logging.connections=TRUE transfer.database.enabled=TRUE transfer.appsrv.enabled=TRUE transfer.appsrv.workAreaRoot=<Enter Directory /folder on Server> transfer.appsrv.accessControl=TRUE transfer.appsrv.read.1=<Enter Directory /folder on Server> transfer.appsrv.write.1=<Enter Directory /folder on Server> 7. Entry in the formsweb.cfg [webutil] WebUtilArchive=frmwebutil.jar,jacob.jar WebUtilLogging=on WebUtilLoggingDetail=normal WebUtilErrorMode=Alert WebUtilDispatchMonitorInterval=5 WebUtilTrustInternal=true WebUtilMaxTransferSize=16384 baseHTMLjinitiator=basejpi.htm baseHTMLjpi=webutiljpi.htm #archive_jini=frmall_jinit.jar lookAndFeel=oracle form=WELCOME.fmx 2 http://www.Alexyscorp.com email info@alexys.us userid=webutil/Webutil$123@ORCL width=955 height=545 jpi_download_page=https://java.sun.com/products/archive/j2se/1.4.2_09/index.ht ml jpi_classid=clsid:8AD9C840-044E-11D1-B3E9-00805F499D93 jpi_codebase=https://java.sun.com/products/plugin/autodl/jinstall-1_4-windows- i586. cab#Version=1,4,0,0 jpi_mimetype=application/x-java-applet;version=1.4 8. Sign jacob.jar ( Not mandatory ) Open a DOS command prompt. Add [OraHome]\jdk\bin to the PATH: set PATH=[OraHome]\jdk\bin;%PATH% Sign the file, and check the output for success: [OraHome]\forms\webutil\sign_webutil [OraHome]\forms\java\jacob.jar [Previously this point stated that frmwebutil.jar also needed to be signed. This is no longer necessary and should not be done.] 9. Start Forms Builder and connect to a schema in the RDBMS used in step (4). Open webutil.pll, do a "Compile ALL" (shift-Control-K), and generate to PLX (Control-T). If the PLX is not generated, the Webutil.pll library would have to be attached with full path information to all forms wishing to use WebUtil. This is NOT recommended. 10. Create a new FMB. Open webutil.olb, and Subclass (not Copy) the Webutil object to the form. There is no need to Subclass the WebutilConfig object. Attach the Webutil.pll Library, and remove the path. Create a new button on a new canvas, with the code show_webutil_information (TRUE); in a WHEN-BUTTON-PRESSED trigger. Compile the FMB to FMX, after doing a Compile-All (Shift-Control-K). 11. Under Edit->Preferences->Runtime in Forms Builder, click on "Reset to Default" if the "Application Server URL" is empty. Then append "?config=webutil" at the end, so you end up with a URL of the form http://server:port/forms/frmservlet?config=webutil 12. Compile the webutil.pll and attach it to the fmb. Compile it 3 http://www.Alexyscorp.com email info@alexys.us Debugging 1. Clear the browser cache and enable the jinitator / sun java plugin. For Sun Java Plugin Start ->Settings ->Control –Panel->Java->Advanced ->Show Java Console Debugging ->Select All Clear the plugin cache and once again access the URL. Make sure all the dlls,jar files are getting downloaded. 2. FRM-92050 failed to connect to server /forms90/;90serlvet -1 oracle.forms.net,connectionexeption : form session failed during startup. ----------------------------------------------------------------------------Java console shows When you are not able to download the webutil.jar file java.lang.ClassNotFoundException: java.io.IOException: open HTTP connection failed. at sun.applet.AppletClassLoader.getBytes(Unknown Source) at sun.applet.AppletClassLoader.access$100(Unknown Source) at sun.applet.AppletClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.applet.AppletClassLoader.findClass(Unknown Source) Cause ----Ensure that the ORACLE_HOME in the .Env file points to a correct home. 3. Frm-40735 when-custom-item-event triger raised unhandled exception ora-06508 ------------------------------------------------------------------------------Cause ----Ported webutil to Unix . The form appears , but when a call is made to webutil functions, it resulted in the above error .The reason was PLL was not compiled on unix . Reference --------Metalink Note 418970.1 ORA-06508 When Starting Webutil 4 http://www.Alexyscorp.com email info@alexys.us 4. Read / Write - image file ----------------------------The code was not erroring out, but the image was not getting copied in the image item . Cause ----transfer.appsrv.workAreaRoot=<name of the temp directory > transfer.appsrv.accessControl=TRUE was not specified in the webutil.cfg file The root of the location in which WebUtil can store temporary files uploaded from the client. While Writing Image file ( remember its the client to which the image is written to ). Example client_image.write_image_file('d:\myimg\','GIF','CTRL.MY_IMG', maximize_compression, original_depth); Then ensure that on the thin client , there exist a directory called as "myimg" in the D drive . One should watch out for the error in the console or the log depending on how the logging has been set to .In case if the directory does not exist on the client message appears that cannot create a file ... These are the steps that occurs 1) WebUtil creates a working directory that is private to the user on the applciation server using the value of transfer.appsrv.workAreaRoot This is that <ipaddress>\<ntuser name> directory 2) The basic forms Write Image file is used to extract a temporary copy of the image into that directory. 3) The image is downloaded into the client machine and saved as the name that you specified as the filename in the write_image_file command. 4) The temporary copy of the image held in the workAreaRoot on the Appserver is cleaned up. 4) Client_host - The command is supposed to run the executable on the client . But if you are trying to call an exe which is not in the path , you will not get any error. 5 http://www.Alexyscorp.com email info@alexys.us 5. Error Message while opening the fmb in the forms builder Add jacob.jar and frmwebutil.jar to CLASSPATH or FORMS_BUILDER_CLASSPATH ... otherwise there is an error message when opening the canvas in the new created fmb 6. Post a thread in otn forum 7. Last option is to send an email to info@alexys.us We will look into it and can give the suggestions/resolution. Suggestions/feedbacks are always welcome. 6