• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: WebObjects and IPv6 Support
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: WebObjects and IPv6 Support


  • Subject: Re: WebObjects and IPv6 Support
  • From: Saad Laassel <email@hidden>
  • Date: Mon, 28 Apr 2014 09:50:55 -0400

Hi Ray,

Thanks for the reply. Unfortunately _setHostIdentificationBytes() does not use _HostIdentificationBytesLength it relies exclusively on the input that's passed in i.e.  the "bytes" array to do it's logic. So short of changing the code (which is not an option for us) not sure what else we can do :( 

Thanks,

Saad

On Apr 16, 2014, at 7:01 PM, Ray Kiddy wrote:


Wonder has a few classes in it that replace eocontrol classes but this
class is unfortunately not one of them. My spider-sense is tingling and
telling me that there may be a static final ivar in that class that is
set to the maximum number of bytes allowed for the
hostIdentificationBytes value. It may be called ...
_HostIdentificationBytesLength, perhaps. It's just a guess.

And, you know, if one thought an IP address could be as many as 6 bytes,
this was the 1990's version of thinking ahead.

You could write the code that will, early in your app's life, grab
that static ivar via reflection and call the method that allows you to
set the value of the field to another number. There will be a whole
slew of exceptions to catch there. Look at the javadoc for
java.lang.reflect.Field and the stuff around there. This would be
easier than trying to replace the class right now.

Send a note if you need more specific pointers or if the suggestion
does not work.

cheers - ray

On Wed, 16 Apr 2014 15:23:08 -0400 Saad Laassel
<email@hidden> wrote:

Hello All,

We are trying to deploy a webobjects application on an IPv6 network
but as soon we pass "java.net.preferIPv6Addresses = true" to the JVM,
to try to force our app to use IPv6 addresses we get the following
error and the application can not start up:

<Servlet: "WOServletAdaptor" failed to preload on startup in Web
application: "app". javax.servlet.UnavailableException: Error
initializing servlet adaptor: null at
com.webobjects.jspservlet.WOServletAdaptor._applicationInit(WOServletAdaptor.java:442)
at
com.webobjects.jspservlet.WOServletAdaptor.initStatics(WOServletAdaptor.java:95)


We believe this is due to the
EOTemporaryGlobalID._setHostIdentificationBytes()  method that's part
of the javaeocontrol jar. The _setHostIdentificationBytes() method
expects the ip address to be either 4 bytes or 6 bytes, but in the
case of IPv6 it will be 16 bytes so the check fails and an exception
is thrown.  The fix is pretty straight forward but since this is part
of the WebObjects framework we are unable to change the source code
and are wondering if this was already addressed as part of project
wonder? or if somebody has been successful at running WebObjects with
IPv6 some other way? Thanks in advance.

Thanks,

Saad


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >WebObjects and IPv6 Support (From: Saad Laassel <email@hidden>)
 >Re: WebObjects and IPv6 Support (From: Ray Kiddy <email@hidden>)

  • Prev by Date: Re: ERMooToolsDirectToWeb.framework compile errors
  • Next by Date: Re: How to create a non-web EOF application
  • Previous by thread: Re: WebObjects and IPv6 Support
  • Next by thread: Re: Mixing and matching prototypes
  • Index(es):
    • Date
    • Thread