> For future reference, a Java class's constructor method has the same name
> as the class. If you think the constructor (init) might require arguments,
> you can look through the source code for that method.

I was aware of this, but didn't see that method, used to it being at the top
I guess.

Anyway, still can't get it working.

Unable to find a constructor for class IceKey that accepts parameters of
type ( java.lang.Integer ).  
 
  
The error occurred in D:\Tools\Web\test.cfm: line 2
 
1 : <cfobject action="create" type="java" class="IceKey" name="myObj" />
2 : <cfset ret = myObj.init(asc("")) />
3 : <cfdump var="#myObj#" />


I tried, just 1 it said didn't like strings, tried int(1) said it didn't
like doubles, damm I hate this, wasn't CF / Java talking supposed to be
easy?

Regards
Dale Fraser


> -----Original Message-----
> From: cfaussie@googlegroups.com [mailto:[EMAIL PROTECTED] On
> Behalf Of Shib71
> Sent: Tuesday, 21 March 2006 15:05 PM
> To: cfaussie@googlegroups.com
> Subject: [cfaussie] Re: Call Java Class (Java Code Attached)
> 
> In Java it is possible to create custom constructors for a class. Often
> these constructors don't take any arguments, but occassionally you come up
> against a class that needs parameters to initialize properly. In those
> cases the class's constructors will require arguments: ie using init()
> will be invalid.
> 
> In your case this code is valid:
> 
> <cfscript>
> 
> myObj = createObject("java", "IceKey").init(3 );
> 
> </cfscript>
> 
> 
> but this isn't:
> 
> <cfscript>
> 
> myObj = createObject("java", "IceKey").init();
> 
> </cfscript>
> 
> For future reference, a Java class's constructor method has the same name
> as the class. If you think the constructor (init) might require arguments,
> you can look through the source code for that method.
> 
> BTW I have no idea what the argument is for, or whether "3" is a good
> value.
> 
> Cheers
> Blair
> 
> 
> On 3/21/06, Dale Fraser < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >
> wrote:
> 
> 
>       What does that mean in english.
> 
>       Regards
>       Dale Fraser
> 
> 
>       > -----Original Message-----
>       > From: cfaussie@googlegroups.com
> [mailto:cfaussie@googlegroups.com ] On
>       > Behalf Of Shib71
>       > Sent: Tuesday, 21 March 2006 14:07 PM
>       > To: cfaussie@googlegroups.com
>       > Subject: [cfaussie] Re: Call Java Class (Java Code Attached)
>       >
>       > That's because the class doesn't have a no-arguments constructor.
> You need
>       > to provide an int argument "level".
>       >
>       > Blair
>       >
>       >
>       > On 3/21/06, Dale Fraser < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]> > wrote:
>       >
>       >
>       >       This
>       >
>       >       <cfobject action="create" type="java" class="IceKey"
> name="myObj" />
>       >       <cfset ret= myObj.init() />
>       >       <cfdump var="#myObj#" />
>       >
>       >       Gives this
>       >
>       >       Error Occurred While Processing Request
>       >       Unable to find a constructor for class IceKey that accepts
>       > parameters of
>       >       type ( ).
>       >
>       >
>       >       The error occurred in D:\Tools\Web\test.cfm: line 2
>       >
>       >       1 : <cfobject action="create" type="java" class="IceKey"
>       > name="myObj" />
>       >       2 : <cfset ret=myObj.init() />
>       >       3 : <cfdump var="#me#" />
>       >
>       >
>       >
>       >
>       >       Regards
>       >       Dale Fraser
>       >
>       >
>       >       > -----Original Message-----
>       >       > From: cfaussie@googlegroups.com
> <mailto:cfaussie@googlegroups.com >
>       > [mailto:[EMAIL PROTECTED] On
>       >       > Behalf Of Mark Mandel
>       >       > Sent: Tuesday, 21 March 2006 13:42 PM
>       >       > To: cfaussie@googlegroups.com
> <mailto:cfaussie@googlegroups.com>
>       >       > Subject: [cfaussie] Re: Call Java Class (Java Code
> Attached)
>       >       >
>       >       > To copy paste out of the coldfusion documentation:
>       >       >
>       >       >
>       >
> http://livedocs.macromedia.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/common
> <http://livedocs.macromedia.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/commo
> n>
>       >
> <http://livedocs.macromedia.com/coldfusion/7/htmldocs/wwhelp/wwhimpl/commo
>       > n>
>       >       >
>       >
> /html/wwhelp.htm?context=ColdFusion_Documentation&file=part_dev.htm
>       >       >
>       >       >
>       >       >
>       >       >       Invoking objects
>       >       >
>       >       >        The cfobject tag makes Java objects available in
> ColdFusion
>       > MX. It
>       >       > can access any Java class that is available on the JVM
> classpath
>       > or in
>       >       > either of the following locations:
>       >       >
>       >       >       *       In a Java archive (.jar) file in
> web_root/WEB-
>       > INF/lib
>       >       >       *       In a class (.class) file in web_root/WEB-
> INF/classes
>       >       >
>       >       >       For example:
>       >       >
>       >       >       <cfobject type="Java" class="MyClass" name="myObj">
>       >       >
>       >       >       Although the cfobject
>       >       >
>       >
> <http://livedocs.macromedia.com/coldfusion/7/htmldocs/00000302.htm#2820239
>       >       > >  tag loads the class, it does not create an instance
> object.
>       > Only static
>       >       > methods and fields are accessible immediately after the
> call to
>       > cfobject.
>       >       >
>       >       >       If you call a public non-static method on the object
> without
>       > first
>       >       > calling the init method, there ColdFusion makes an
> implicit call
>       > to the
>       >       > default constructor.
>       >       >
>       >       >       To call an object constructor explicitly, use the
> special
>       > ColdFusion
>       >       > init method with the appropriate arguments after you use
> the
>       > cfobject tag;
>       >       > for example:
>       >       >
>       >       >       <cfobject type="Java" class="MyClass" name="myObj">
>       >       >       <cfset ret=myObj.init(arg1, arg2)>
>       >       >
>       >       >       Note: The init method is not a method of the object,
> but a
>       >       > ColdFusion identifier that calls the new function on the
> class
>       >       constructor.
>       >       > So, if a Java object has an init method, a name conflict
> exists
>       > and you
>       >       > cannot call the object's init method.
>       >       >
>       >       >       To have persistent access to an object, you must use
> the
>       > init
>       >       > function, because it returns a reference to an instance of
> the
>       > object, and
>       >       > cfobject does not.
>       >       >
>       >       >       An object created using cfobject or returned by
> other
>       > objects is
>       >       > implicitly released at the end of the ColdFusion page
> execution.
>       >       >
>       >       >
>       >       > Btw - you may want to brush up on your OO vocabulary.  I
> think you
>       > meant
>       >       > to say you could 'not find a init method in this class' or
>       > something to
>       >       > that effect.
>       >       >
>       >       > Mark
>       >       >
>       >       >
>       >       >
>       >       > On 3/21/06, Dale Fraser <[EMAIL PROTECTED]> wrote:
>       >       >
>       >       >
>       >       >       Hey,
>       >       >
>       >       >       I'm no Java guru, but I don't see a constructor
> class or
>       > init method
>       >       > in this
>       >       >       function.
>       >       >
>       >       >       Regards
>       >       >       Dale Fraser
>       >       >
>       >       >
>       >       >       > -----Original Message-----
>       >       >       > From: cfaussie@googlegroups.com
>       > <mailto: cfaussie@googlegroups.com>
> <mailto:cfaussie@googlegroups.com>
>       >       > [mailto: cfaussie@googlegroups.com
> <mailto:cfaussie@googlegroups.com> ] On
>       >       >       > Behalf Of Mark Mandel
>       >       >       > Sent: Tuesday, 21 March 2006 13:02 PM
>       >       >       > To: cfaussie@googlegroups.com
> <mailto:cfaussie@googlegroups.com>
>       > <mailto:cfaussie@googlegroups.com >
>       >       >       > Subject: [cfaussie] Re: Call Java Class (Java Code
>       > Attached)
>       >       >       >
>       >       >       > Actually - what just popped into my head -
>       >       >       >
>       >       >       > Try this -
>       >       >       >
>       >       >       > <cfscript>
>       >       >       >   myObj = createObject("java", "IceKey").init();
>       >       >       > </cfscript>
>       >       >       >
>       >       >       > I have found on occasion you actually need to
> explicitly
>       > call the
>       >       > default
>       >       >       > constructor on the Java object, otherwise you get
>       > weirdness.
>       >       >       >
>       >       >       > I'm not really sure why it is, I have a feeling it
> may
>       > have
>       >       > something to
>       >       >       > do with static attributes - therefore I tend to
> call
>       > init() on all
>       >       >       > constructors by default.
>       >       >       >
>       >       >       > Try that, and see if that works.
>       >       >       >
>       >       >       > Mark
>       >       >       >
>       >       >       >
>       >       >
>       >       >
>       >       >
>       >       >
>       >       >
>       >       > --
>       >       > E: [EMAIL PROTECTED]
>       >       > W:
> 
> 
>       <http://www.compoundtheory.com>



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"cfaussie" group.
To post to this group, send email to cfaussie@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/cfaussie
-~----------~----~----~----~------~----~------~--~---

Reply via email to