You are on page 1of 6

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.

You might also like