5 Replies Latest reply: Nov 4, 2013 4:58 AM by TerDale RSS

    7u45: InvalidArgumentException[ Invalid arguments supplied: {-notWebJava }]

    martinm1000

      Another Java 7u45 problem...

       

      I have two different webstart applications.

       

      Java 7u45 with a clean java cache, I can start my apps via HTTP/JNLP file each time.

       

      For one of the applications, the desktop application shortcut won't work :

       

      InvalidArgumentException[ Invalid arguments supplied: {-notWebJava }]

        at com.sun.javaws.Main.continueInSecureThread(Unknown Source)

        at com.sun.javaws.Main.access$000(Unknown Source)

        at com.sun.javaws.Main$1.run(Unknown Source)

        at java.lang.Thread.run(Unknown Source)

       

      But it works on the command line using javaws http://...jnlp and also javaws -system http:///...jnlp.

       

      The other application doesn't suffer from this problem.

       

      This seems to apply to the 3 systems I just tested. Not sure what to check first...

       

      Any idea what notWebJava means ???


      Edit: This happen on Windows 7/8 x64. On Linux it works.

       

      Message was edited by: martinm1000

        • 2. Re: 7u45: InvalidArgumentException[ Invalid arguments supplied: {-notWebJava }]
          martinm1000

          Maybe... I don't know, I don't have that much properties...

           

          <?xml version="1.0" encoding="UTF-8"?>

          <!--

            JTE 4 Startup JNLP File.

           

            The WEB Server must be configured with a MIME type for .jnlp files:

                              application/x-java-jnlp-file

           

           

            If you can see this in your browser, you might need to install Java2

            or your browser does not have the mime type association with the

            installed java Web Start application.

           

            Date         : 2013-04-10

          -->

          <jnlp spec="6.0+" codebase="http://svr-web-05.jovaco.ca:81/" href="jte4.jnlp">

              <information>

                  <title>JOVACO</title>

                  <vendor>Jovaco Solutions, Inc.</vendor>

                  <description kind="short">Jovaco Time and Expense 4.2</description>

                  <description kind="tooltip">JTE 4.2</description>

                  <homepage href="index.html"/>

                  <icon href="images/app.jpg"/>

                  <shortcut online="true">

                      <desktop/>

                  </shortcut>

              </information>

              <update check="always" policy="always"/>

              <security>

                  <all-permissions/>

              </security>

              <resources>

                  <property name="jnlp.packEnabled" value="true"/>

                  <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>

           

           

                  <!-- SQL Database or IDS Server Connection -->

                  <property name="jnlp.jte.server.addr" value="gpdata.jovaco.ca"/>

                  <property name="jnlp.jte.server.port" value="1433"/>

                  <property name="jnlp.jte.server.timeout" value="20"/>

           

           

                  <!-- JDBC Driver Type: jtds, ids, idsssl -->

                  <property name="jnlp.jte.jdbc.type" value="jtds"/>

           

           

                  <!-- Main Application Files -->

                  <jar href="jte4.jar" main="true" part="jte" download="eager"/>

           

           

                  <!-- Database drivers -->

                  <jar href="libs/jtds.jar" part="jtds" download="eager"/>

           

           

                  <!-- Application Libraries -->

                  <jar href="libs/swing-worker.jar" part="" download="eager"/>

                  <jar href="libs/miglayout-swing.jar" part="" download="eager"/>

                  <jar href="libs/swingx.jar" part="" download="eager"/>

                  <jar href="libs/joda-time.jar" part="" download="eager"/>

                  <jar href="libs/TediCrm.jar" part="" download="eager"/>

                  <jar href="libs/swing-bits.jar" part="" download="eager"/>

                  <jar href="libs/xpp3_min.jar" part="" download="eager"/>

                  <jar href="libs/xmlpull.jar" part="" download="eager"/>

                  <jar href="libs/xstream.jar" part="" download="eager"/>

                  <jar href="libs/TaskDialog.jar" part="" download="eager"/>

                  <jar href="libs/guava.jar" part="" download="eager"/>

                 

                  <!-- Misc and other less used properties -->

                  <property name="jnlp.jte.server.script" value="asp"/>

                  <property name="jnlp.jte.database.dsn" value="none"/>

                  <property name="jnlp.jte.odbc.dynamics" value="none"/>

                  <property name="jnlp.jte.ids.public.key" value=""/>

           

           

                  <!-- Deactivate Java 1.5's ProxySelector 2005-07-03 - WorkAround #5092063

                       http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5092063 -->

                  <property name="jnlp.jte.proxy.selector.fix" value="false"/>

           

           

                  <property name="jnlp.jte.mapper.version" value="2007"/>

           

           

                  <property name="jnlp.jte.customer.modifications" value=""/>

           

           

                  <!-- List of valid Expense Costypes -->

                  <property name="jnlp.jte.costtype.expenses.list" value="4,5,6,7"/>

           

           

                  <!-- Debug SQL Queries to Java Console -->

                  <property name="jnlp.jte.debug.sql" value="false"/>

           

           

                  <!-- Mac OS X / Java WebStart -->

                  <property name="apple.laf.useScreenMenuBar" value="true"/>

                 

                  <property name="jnlp.jte.timesheet.validating.24h" value="false"/>

                 

            <property name="jnlp.jte.report.rs" value="false"/>

            <property name="jnlp.jte.paystub.past.years" value="3"/>

                  <property name="jnlp.jte.paystub.expenses.ytd" value="false"/>

                  <property name="jnlp.jte.sl.comments" value="true"/>

           

           

              </resources>

              <application-desc main-class="com.jovaco.jte.Main2">

              </application-desc>

          </jnlp>

          • 3. Re: 7u45: InvalidArgumentException[ Invalid arguments supplied: {-notWebJava }]
            matbroughty

            I'm getting this issue as well.

             

            Basically Java 7 u45 has completely killed our web start application (and it would appear pretty much everyone else’s).

             

            I have added jnlp before all of Property names and added required attributes (Permissions, Codebase, etc) to the manifest files of the already correctly signed jars.

             

            I thought I had the web start app working again and now when I try from the desktop shortcut I get the InvalidArgumentException[ Invalid arguments supplied: {-notWebJava }]

             

            Still getting warning about unsigned .jnlp file but our jnlp file is created on the fly and I don’t think the template option ( https://blogs.oracle.com/thejavatutorials/entry/signing_jar_files_with_a ) will work (and it is very badly documented).

             

            This is a nightmare. Really need to move away from web start as it is unmanageable at the moment with these kind of updates.

             

            What is everyone else doing?


            • 4. Re: 7u45: InvalidArgumentException[ Invalid arguments supplied: {-notWebJava }]
              martinm1000

              I still have the notWebJava from the shortcut, but only at work. I don't think this happened to my customers installations yet, but I don't know

              how many are on 7u45, since we told them to wait if possible.

               

              I've decided to sign the damn JNLP with the template, but I can tell you this: You can't use your own properties, if won't work.

              I've opened a bugreport for that (and the lack of specific documentation about those issues), so that it can be ignored by Oracle...

               

              So I've decided to move my properties value/name to my own xml file that I download from the web site.

               

              I used an <argument>*</argument> (this worked) to specify the name of the xml file to download to get my properties.

              pc.jnlp, at the end:

              <application-desc main-class="com.jovaco.pc.Main">

                      <argument>jovaco.config=pc.xml</argument>

              </application-desc>

               

              Ideally, I wanted to be able to detect the file name of the JNLP that launched the application to try to automatically download the

              same 'name'.xml file, but my tests with using the System.Properties that Webstart setup after execution would not always work,

              and the javaws cache API wasn't helpful too...

              • 5. Re: 7u45: InvalidArgumentException[ Invalid arguments supplied: {-notWebJava }]
                TerDale

                martinm1000 wrote:

                 

                You can't use your own properties, if won't work.

                App-specific properties are now considered as "unsafe", and must be prepended by "jnlp." and reset by the app itself, did you do this?

                 

                 

                On our side, this is the reason why we stumbled upon this Java bug: because we added this prefix to our ~10 props. This was increased by the fact that, oddly, JWS places each property twice on the generated command line: one for the deployment (bug? not needed here!), and one for the actual launch of your app.

                As a very short-term workaround, I shortened our property names. As a final workaround, I plan to move properties from the "jnlp" section of our dynamically generated JNLP file, to the "application-desc" section, and turn them into "arguments". Should work, and hopefully prevent the repetition of each property.

                HTH