[Resin-interest] Quercus doesn't implement 'array_walk' correctly and ignores 'arg_separator.input' option

2010-03-24 Thread Roberto Posenato
Hi,

I wrote two messages about the subject to forum.caucho.com but my messages 
haven't been published.  
I try here. Please, forgive me if the subject is out of interest.

FIRST ISSUE
===
I found that Quercus 4.0.5 doesn't implement 'array_walk' rightly when the 
function call contains the second and the third parameters.
Here a simple test case:

?php
$fruits = array(d = lemon, a = orange, b = banana, c = 
apple);

function test_alter($item1, $key, $prefix)
{
$item1 = $prefix:$item1;
}

function test_print($item2, $key)
{
echo $key = $item2br /\n;
}

echo Before ...:br /\n;
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo \nbr... and after:br /\n;

array_walk($fruits, 'test_print');
?


The output should be:
Before ...:
d = lemon
a = orange
b = banana
c = apple

... and after:
d = fruit:lemon
a = fruit:orange
b = fruit:banana
c = fruit:apple

The actual output is:Before ...:
= lemon
= orange
= banana
= apple
/usr/local/resin/webapps/aw1.php:17: Warning: required argument missing 
[array_walk] /usr/local/resin/webapps/aw1.php:17: Warning: required argument 
missing [array_walk] /usr/local/resin/webapps/aw1.php:17: Warning: required 
argument missing [array_walk] /usr/local/resin/webapps/aw1.php:17: Warning: 
required argument missing [array_walk] 
... and after:
= :lemon
= :orange
= :banana
= :apple

If array_walk contains two parameters, the second one is ignored silently.
If array_walk contains three parameters, a warning is raised.

I filled a Quercus bug: http://bugs.caucho.com/view.php?id=3961

Any ideas about possible workarounds?

SECOND ISSUE


To separate arguments of a query string, any character specified by 
arg_separator.input configuration option should be valid.
I think that Quercus ignores arg_separator.input value and uses only '' to 
calculate $_GET values.
I tried to set arg_separator.input both in web.xml php-ini and by ini_set() 
instruction.

A simple test-case:
?php
ini_set(arg_separator.input, ;);
echo arg_separator.input value: . ini_get('arg_separator.input') . br;

echo Get parameters: ;
print_r($_GET);

?

and call it from the browser in a way similar to this:
http://localhost/php/args.php?1=first2=second;3=third [^]

The output should be:

arg_separator.input value: ;
Get parameters: Array ( [1] = first [2] = second [3] = third ) 
---

The actual output is:
arg_separator.input value: ;
Get parameters: Array ( [1] = first [2] = second;3=third )


We are using Resin-Pro for 10 years and we would like to switch off the apache 
front-end used only for two PHP applications...
The two applications cannot be modified for security reasons.

Thanks in advance for any hints/suggestions.

Ciao,
   Roberto








___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


[Resin-interest] Resin-Pro-4.0.5 Admin

2010-03-24 Thread Aaron Freeman
Since we are upgrading from pro-3.0.23 to pro-4.0.5, we thought we would 
take advantage of the resin-admin stuff.  However the docs aren't clear 
on how that's supposed to happen.  This page says nothing about what to 
install: http://caucho.com/resin-4.0/admin/resin-admin.xtp

And this page seems to elude that I have to install another product? I 
could have sworn we had this working in 4.0.0 without installing 
Quercus.  http://caucho.com/resin-4.0/admin/resin-admin-console.xtp

Since /resin-admin is just a web-app implemented with Quercus/PHP, 
enabling it is just adding an appropriate web-app tag.

Hopefully this is just a documentation error?  If so how do we get the 
admin running?  If not, is it really worth installing and working 
through a whole new package and all the configuration overhead and 
learning curve that comes with it?

Thanks,

Aaron


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] CanDI unable to inject @Stateless

2010-03-24 Thread Scott Ferguson
smallufo wrote:


 2010/3/24 smallufo small...@gmail.com mailto:small...@gmail.com

 Mmm... There is no ejb-jar.xml in META-INF/

 After adding an empty ejb-jar.xml , it still doesn't work.

 No matter 4.0.4 or 4.0.5


 BTW I tried a lot of ejb-jar.xml settings , but non works...
 Is there any working example for this simple scenario ?
Thanks. Can you add an ejb-server/ to your resin.xml (inside the 
cluster).

That's a Resin bug because the ejb-server/ wasn't supposed to be 
required any more.

-- Scott


 

 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest
   



___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] CanDI unable to inject @Stateless

2010-03-24 Thread smallufo
2010/3/25 Scott Ferguson f...@caucho.com


 Thanks. Can you add an ejb-server/ to your resin.xml (inside the
 cluster).

 That's a Resin bug because the ejb-server/ wasn't supposed to be
 required any more.

 -- Scott


Thank you , it works !

public class HelloServlet extends HttpServlet {
  @EJB / @Inject both works
  private PersonService personService;

Now I can inject into Servlet with @EJB and @Inject , though I don't know
the difference , the console dump seems nothing different.

BTW , what is the populated JNDI name of the Stateless Bean ?
in my code :

@Stateless(mappedName=ejb/personService)
@Local(PersonService.class)
public class PersonServiceImpl implements PersonService , Serializable

But I cannot find this EJB in the InitialContext (under wicket) , it throws
:

Caused by: java.lang.RuntimeException: Could not locate ejb of class
[[interface data.PersonService]] and name [[ejb/personService]]
at
org.wicketstuff.javaee.JavaEEBeanLocator.lookupEjb(JavaEEBeanLocator.java:131)
at
org.wicketstuff.javaee.JavaEEBeanLocator.locateProxyTarget(JavaEEBeanLocator.java:109)
at
org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:412)
at org.apache.wicket.proxy.$Proxy51.getPerson(Unknown Source)
at wicket.CurrentPage.init(CurrentPage.java:33)
... 31 more
Caused by: javax.naming.NameNotFoundException:
java:comp/env/ejb/personService
at com.caucho.naming.ContextImpl.lookupImpl(ContextImpl.java:205)
at com.caucho.naming.ContextImpl.lookup(ContextImpl.java:157)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at
org.wicketstuff.javaee.JavaEEBeanLocator.lookupEjb(JavaEEBeanLocator.java:124)
... 35 more

Where goes wrong ?
Isn't the mappedName=ejb/personService hooked into java:comp/env ? Why
resin (4.0.4) throws NameNotFoundException ?
___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] CanDI unable to inject @Stateless

2010-03-24 Thread Scott Ferguson
smallufo wrote:


 2010/3/25 Scott Ferguson f...@caucho.com mailto:f...@caucho.com

 Thank you , it works !

 public class HelloServlet extends HttpServlet {
   @EJB / @Inject both works 
   private PersonService personService;

 Now I can inject into Servlet with @EJB and @Inject , though I don't 
 know the difference , the console dump seems nothing different.
Well, you can think of @EJB as the obsolete JavaEE injection method, 
although @EJB does have JNDI side-effects.

 BTW , what is the populated JNDI name of the Stateless Bean ?
 in my code :

 @Stateless(mappedName=ejb/personService)
 @Local(PersonService.class)
 public class PersonServiceImpl implements PersonService , Serializable

 Where goes wrong ? 
 Isn't the mappedName=ejb/personService hooked into java:comp/env ? 
 Why resin (4.0.4) throws NameNotFoundException ?
This is kind of complicated. Technically (according to the spec), the 
@Stateless does not register with JNDI at all - that's a Resin-specific 
feature. The JNDI registration occurs either with an ejb-ref or a @EJB 
annotation somewhere.

But that's a part of the spec that we haven't completely tested yet. We 
have an open bug at http://bugs.caucho.com/view.php?id=3964 to restore 
Resin's old behavior for backward compatibility.

-- Scott
 

 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest
   



___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Resin-Pro-4.0.5 Admin

2010-03-24 Thread Rick Mann

On Mar 24, 2010, at 09:07:07, Aaron Freeman wrote:

 Since we are upgrading from pro-3.0.23 to pro-4.0.5, we thought we would 
 take advantage of the resin-admin stuff.  However the docs aren't clear 
 on how that's supposed to happen.  This page says nothing about what to 
 install: http://caucho.com/resin-4.0/admin/resin-admin.xtp
 
 And this page seems to elude that I have to install another product? I 
 could have sworn we had this working in 4.0.0 without installing 
 Quercus.  http://caucho.com/resin-4.0/admin/resin-admin-console.xtp

Quercus is part of Resin 4.x. You get it for free.

-- 
Rick



___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Resin-Pro-4.0.5 Admin

2010-03-24 Thread Bill Au
It is part of resin 4.x.  Make sure you have the following in your
resin.xml:

  web-app id=/resin-admin root-directory=${resin.root}/doc/admin
prologue
  resin:set var=resin_admin_external value=false/
  resin:set var=resin_admin_insecure value=true/
/prologue
  /web-app

If you want to use a hostname other than localhost to access the UI, then
you will have to set resin_admin_external to true.

I have been looking at it since I am upgrading from 3.0 to 4 too.  It looks
very good.  Be sure to check it out.  It is nice that a lot of monitoring
stuff that we have had to add on top of resin is now part of it.

Bill


On Wed, Mar 24, 2010 at 2:15 PM, Rick Mann rm...@latencyzero.com wrote:


 On Mar 24, 2010, at 09:07:07, Aaron Freeman wrote:

  Since we are upgrading from pro-3.0.23 to pro-4.0.5, we thought we would
  take advantage of the resin-admin stuff.  However the docs aren't clear
  on how that's supposed to happen.  This page says nothing about what to
  install: http://caucho.com/resin-4.0/admin/resin-admin.xtp
 
  And this page seems to elude that I have to install another product? I
  could have sworn we had this working in 4.0.0 without installing
  Quercus.  http://caucho.com/resin-4.0/admin/resin-admin-console.xtp

 Quercus is part of Resin 4.x. You get it for free.

 --
 Rick



 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest

___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Resin-Pro-4.0.5 Admin

2010-03-24 Thread Aaron Freeman
On 3/24/2010 1:15 PM, Rick Mann wrote:
 On Mar 24, 2010, at 09:07:07, Aaron Freeman wrote:


 Since we are upgrading from pro-3.0.23 to pro-4.0.5, we thought we would
 take advantage of the resin-admin stuff.  However the docs aren't clear
 on how that's supposed to happen.  This page says nothing about what to
 install: http://caucho.com/resin-4.0/admin/resin-admin.xtp

 And this page seems to elude that I have to install another product? I
 could have sworn we had this working in 4.0.0 without installing
 Quercus.  http://caucho.com/resin-4.0/admin/resin-admin-console.xtp
  

Odd, when I untar resin-pro-4.0.5 and look in the php/admin directory 
from the example block on the second link above:

web-app id=/resin-admin root-directory=${resin.home}/php/admin

The php directory doesn't exist.  Let me hunt around a bit now that I know it 
should be there somewhere.

Aaron





___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Resin-Pro-4.0.5 Admin

2010-03-24 Thread Jamison Novak
The resin-admin application is under ${resin.home}/doc/admin. I think the old 
location may have been under a php subdir, but it doesn't appear to be there 
under any of the 4.x builds that I've done in the past.

-Jamie

-Original Message-
From: resin-interest-boun...@caucho.com 
[mailto:resin-interest-boun...@caucho.com] On Behalf Of Aaron Freeman
Sent: Wednesday, March 24, 2010 3:12 PM
To: General Discussion for the Resin application server
Subject: Re: [Resin-interest] Resin-Pro-4.0.5 Admin

On 3/24/2010 1:15 PM, Rick Mann wrote:
 On Mar 24, 2010, at 09:07:07, Aaron Freeman wrote:


 Since we are upgrading from pro-3.0.23 to pro-4.0.5, we thought we would
 take advantage of the resin-admin stuff.  However the docs aren't clear
 on how that's supposed to happen.  This page says nothing about what to
 install: http://caucho.com/resin-4.0/admin/resin-admin.xtp

 And this page seems to elude that I have to install another product? I
 could have sworn we had this working in 4.0.0 without installing
 Quercus.  http://caucho.com/resin-4.0/admin/resin-admin-console.xtp
  

Odd, when I untar resin-pro-4.0.5 and look in the php/admin directory 
from the example block on the second link above:

web-app id=/resin-admin root-directory=${resin.home}/php/admin

The php directory doesn't exist.  Let me hunt around a bit now that I know it 
should be there somewhere.

Aaron





___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Resin-Pro-4.0.5 Admin

2010-03-24 Thread Aaron Freeman

On 3/24/2010 2:00 PM, Bill Au wrote:
It is part of resin 4.x.  Make sure you have the following in your 
resin.xml:


web-app id=/resin-admin root-directory=${resin.root}/doc/admin
prologue
resin:set var=resin_admin_external value=false/
resin:set var=resin_admin_insecure value=true/
/prologue
/web-app

If you want to use a hostname other than localhost to access the UI, 
then you will have to set resin_admin_external to true.


I have been looking at it since I am upgrading from 3.0 to 4 too.  It 
looks very good.  Be sure to check it out.  It is nice that a lot of 
monitoring stuff that we have had to add on top of resin is now part 
of it.


Bill


On Wed, Mar 24, 2010 at 2:15 PM, Rick Mann rm...@latencyzero.com 
mailto:rm...@latencyzero.com wrote:



On Mar 24, 2010, at 09:07:07, Aaron Freeman wrote:

 Since we are upgrading from pro-3.0.23 to pro-4.0.5, we thought
we would
 take advantage of the resin-admin stuff.  However the docs
aren't clear
 on how that's supposed to happen.  This page says nothing about
what to
 install: http://caucho.com/resin-4.0/admin/resin-admin.xtp

 And this page seems to elude that I have to install another
product? I
 could have sworn we had this working in 4.0.0 without installing
 Quercus. http://caucho.com/resin-4.0/admin/resin-admin-console.xtp

Quercus is part of Resin 4.x. You get it for free.

--
Rick



Ahhh ... that's slightly different than the documentation.  It says 
/php/admin and yours says /doc/admin.  Let me try that.


Scott, you might want to have the documentation updated if that's the 
difference.


Thanks,

Aaron
___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] Resin-Pro-4.0.5 Admin

2010-03-24 Thread Scott Ferguson
Aaron Freeman wrote:

 Ahhh ... that's slightly different than the documentation.  It says 
 /php/admin and yours says /doc/admin.  Let me try that.

 Scott, you might want to have the documentation updated if that's the 
 difference.
Thanks. I just updated it.

-- Scott

 Thanks,

 Aaron
 

 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest
   



___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] CanDI unable to inject @Stateless

2010-03-24 Thread smallufo
Thanks , but I tried some settings in 'ejb-jar.xml' ,  but still cannot get
the Stateless bean from JNDI ,
Here are some of my settings :


!--
session
  ejb-nameSession/ejb-name
  ejb-classdata.PersonServiceImpl/ejb-class
  ejb-ref
ejb-ref-nameejb/personService/ejb-ref-name
ejb-ref-typeSession/ejb-ref-type
homedata.PersonService/home
remotedata.PersonServiceImpl/remote
  /ejb-ref
/session
BeanType[com.caucho.config.types.DescriptionGroupConfig]: conflicting
attribute for 'xxx' between SetterAttribute
NameNotFoundException: java:comp/env/ejb/personService
--

!--
session
  ejb-namepersonService/ejb-name
  ejb-classdata.PersonServiceImpl/ejb-class
  ejb-local-ref
ejb-ref-nameejb/personService/ejb-ref-name
ejb-ref-typeSession/ejb-ref-type
local-homedata.PersonService/local-home
localdata.PersonServiceImpl/local
  /ejb-local-ref
/session
EjbLocalRef[ejb/personService, null, null] init
NameNotFoundException: java:comp/env/ejb/personService
--

!--
session
  ejb-namepersonService/ejb-name
  homedata.PersonService/home
  remotedata.PersonServiceImpl/remote
  ejb-classdata.PersonServiceImpl/ejb-class
  session-typeStateless/session-type
  transaction-typeBean/transaction-type
/session
Not working
com.caucho.config.ConfigException: 'data.PersonService' must extend EJBHome.
 home interfaces must extend javax.ejb.EJBHome.
--

Is there any valid settings I can refer to (I've searched a lot ) ?




2010/3/25 Scott Ferguson f...@caucho.com

 smallufo wrote:
 
 
  2010/3/25 Scott Ferguson f...@caucho.com mailto:f...@caucho.com
 
  Thank you , it works !
 
  public class HelloServlet extends HttpServlet {
@EJB / @Inject both works
private PersonService personService;
 
  Now I can inject into Servlet with @EJB and @Inject , though I don't
  know the difference , the console dump seems nothing different.
 Well, you can think of @EJB as the obsolete JavaEE injection method,
 although @EJB does have JNDI side-effects.
 
  BTW , what is the populated JNDI name of the Stateless Bean ?
  in my code :
 
  @Stateless(mappedName=ejb/personService)
  @Local(PersonService.class)
  public class PersonServiceImpl implements PersonService , Serializable
 
  Where goes wrong ?
  Isn't the mappedName=ejb/personService hooked into java:comp/env ?
  Why resin (4.0.4) throws NameNotFoundException ?
 This is kind of complicated. Technically (according to the spec), the
 @Stateless does not register with JNDI at all - that's a Resin-specific
 feature. The JNDI registration occurs either with an ejb-ref or a @EJB
 annotation somewhere.

 But that's a part of the spec that we haven't completely tested yet. We
 have an open bug at http://bugs.caucho.com/view.php?id=3964 to restore
 Resin's old behavior for backward compatibility.

 -- Scott
  
 
  ___
  resin-interest mailing list
  resin-interest@caucho.com
  http://maillist.caucho.com/mailman/listinfo/resin-interest
 



 ___
 resin-interest mailing list
 resin-interest@caucho.com
 http://maillist.caucho.com/mailman/listinfo/resin-interest

___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest


Re: [Resin-interest] 4.0.0 on osx deploy problem

2010-03-24 Thread Rob Lockstone

On Mar 22, 2010, at 12:16 , Scott Ferguson wrote:

 Jeff Schnitzer wrote:
 FWIW, Resin on OSX seems to work fine despite the error messages.
 
 My understanding is that this is a known issue with the Apple JDK, but 
 it doesn't hurt anything.

I submitted this as bug to Apple in September 2009. It was marked as a 
duplicate of bug #7007567. It doesn't seem to cause a problem, but it is 
disturbing. If you want Apple to give it a higher priority for fixing, your 
best bet is to submit your own bug on it, even mentioning that it's a duplicate 
of #7007567. Apple uses the number of reports of a particular bug to help them 
prioritize what gets fixed first.

Rob

 -- Scott
 Jeff
 
 On Sat, Mar 20, 2010 at 6:12 AM, Jon Stevens latch...@gmail.com wrote:
 
 Yes, I can't remember what the solution was. =( Sorry!
 jon
 
 On Sat, Mar 20, 2010 at 2:16 AM, Rick Mann rm...@latencyzero.com wrote:
 
 John, did you ever find an answer to this? I'm getting it, too.
 
 
 On Jun 29, 2009, at 22:50:52, Jon Stevens wrote:
 
 
 Here is another problem. When deploying subetha on osx using the apple
 jdk 6, I get the stack trace below. When deplying subetha on osx using the
 landon fuller soylatte jdk, things work fine. I get a different set of
 errors using jdk5 which relate to the resin servlets apparently being
 compiled with jdk6.
 
 [16][ ~/checkout/resin-4.0.0 ]% ./bin/resin.sh
 Intentionally suppressing recursive invocation exception!
 java.lang.IllegalStateException: recursive invocation
  at
 java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1394)
  at
 java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1377)
  at sun.security.jca.ProviderConfig$1.run(ProviderConfig.java:64)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.security.jca.ProviderConfig.getLock(ProviderConfig.java:62)
  at
 sun.security.jca.ProviderConfig.getProvider(ProviderConfig.java:187)
  at
 sun.security.jca.ProviderList.getProvider(ProviderList.java:215)
  at sun.security.jca.ProviderList.getService(ProviderList.java:313)
  at sun.security.jca.GetInstance.getInstance(GetInstance.java:140)
  at
 java.security.cert.CertificateFactory.getInstance(CertificateFactory.java:148)
  at sun.security.pkcs.PKCS7.parseSignedData(PKCS7.java:244)
  at sun.security.pkcs.PKCS7.parse(PKCS7.java:141)
  at sun.security.pkcs.PKCS7.parse(PKCS7.java:110)
  at sun.security.pkcs.PKCS7.init(PKCS7.java:92)
  at
 sun.security.util.SignatureFileVerifier.init(SignatureFileVerifier.java:80)
  at java.util.jar.JarVerifier.processEntry(JarVerifier.java:256)
  at java.util.jar.JarVerifier.update(JarVerifier.java:188)
  at java.util.jar.JarFile.initializeVerifier(JarFile.java:321)
  at java.util.jar.JarFile.getInputStream(JarFile.java:386)
  at sun.misc.JarIndex.getJarIndex(JarIndex.java:99)
  at sun.misc.URLClassPath$JarLoader$1.run(URLClassPath.java:606)
  at java.security.AccessController.doPrivileged(Native Method)
  at
 sun.misc.URLClassPath$JarLoader.ensureOpen(URLClassPath.java:597)
  at sun.misc.URLClassPath$JarLoader.init(URLClassPath.java:581)
  at sun.misc.URLClassPath$3.run(URLClassPath.java:331)
  at java.security.AccessController.doPrivileged(Native Method)
  at sun.misc.URLClassPath.getLoader(URLClassPath.java:320)
  at sun.misc.URLClassPath.getLoader(URLClassPath.java:297)
  at sun.misc.URLClassPath.getResource(URLClassPath.java:167)
  at java.net.URLClassLoader$1.run(URLClassLoader.java:192)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:244)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:309)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:402)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:247)
  at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2150)
  at java.security.AccessController.doPrivileged(Native Method)
  at
 java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1407)
  at
 java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1377)
 Intentionally suppressing recursive invocation exception!
 java.lang.IllegalStateException: recursive invocation
  at
 java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1394)
  at
 java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1377)
  at sun.security.jca.ProviderConfig$3.run(ProviderConfig.java:231)
  at java.security.AccessController.doPrivileged(Native Method)
  at
 sun.security.jca.ProviderConfig.doLoadProvider(ProviderConfig.java:225)
  at