Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WARNING: Failed to scan <>.jar from classloader hierarchy. FileNotFoundException

So I have my project: https://github.com/Leejjon/Blindpool

When I try to release it to app engine from an Google App Engine Deployment Run configuration in IntelliJ it works perfectly and deploys fine too.

But I get a lot of warnings (this is just one):

Deploying '[2017-07-27 23:15:04] Maven build: Blindpool. Project: blindepoule. Version: 6'...
Created temporary staging directory: C:\Users\Leejjon\AppData\Local\Temp\gae-staging-blindepoule684
Reading application configuration data...
jul 27, 2017 11:15:06 PM com.google.apphosting.utils.config.IndexesXmlReader readConfigXml
INFO: Successfully processed C:\Users\Leejjon\IdeaProjects\Blindpool\target\blindpool-1.0-SNAPSHOT\WEB-INF\appengine-generated\datastore-indexes-auto.xml


Beginning interaction for module default...
0% Scanning for jsp files.
0% Compiling jsp files.
jul 27, 2017 11:15:07 PM org.apache.tomcat.util.scan.StandardJarScanner scan
WARNING: Failed to scan [file:/C:/Users/Leejjon/AppData/Local/Google/Cloud%2520SDK/google-cloud-sdk/platform/google_appengine/google/appengine/tools/java/lib/impl/appengine-api-labs.jar] from classloader hierarchy
java.io.FileNotFoundException: C:\Users\Leejjon\AppData\Local\Google\Cloud%20SDK\google-cloud-sdk\platform\google_appengine\google\appengine\tools\java\lib\impl\appengine-api-labs.jar (The system cannot find the path specified)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:219)
at java.util.zip.ZipFile.<init>(ZipFile.java:149)
at java.util.jar.JarFile.<init>(JarFile.java:166)
at java.util.jar.JarFile.<init>(JarFile.java:103)
at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:93)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:69)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:109)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:89)
at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:47)
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:36)
at org.apache.jasper.servlet.TldScanner$TldScannerCallback.scan(TldScanner.java:301)
at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:313)
at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:245)
at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262)
at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:106)
at org.apache.jasper.JspC.initServletContext(JspC.java:1535)
at org.apache.jasper.JspC.execute(JspC.java:1378)
at com.google.appengine.tools.admin.LocalJspC.main(LocalJspC.java:33)

Then the same exception occurs for a lot of other jars like javax.annotation-api-1.2.jar, asm-commons-5.0.1.jar, asm-5.0.1.jar, javax.transaction-api-1.2.jar, javax.mail.glassfish-1.4.1.v201005082020.jar, org.apache.taglibs.taglibs-standard-spec-1.2.5.jar, org.apache.taglibs.taglibs-standard-impl-1.2.5.jar and about 30 others.

But the deployment simply continues:

jul 27, 2017 11:15:08 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
jul 27, 2017 11:15:08 PM org.apache.jasper.JspC processFile
INFO: Built File: \index.jsp
2017-07-27 23:15:10.115:INFO::main: Logging initialized @175ms
2017-07-27 23:15:11.051:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=501ms
0% Generated git repository information file.
Success.
Temporary staging for module default directory left in C:\Users\Leejjon\AppData\Local\Temp\gae-staging-blindepoule684
Services to deploy:

descriptor:      [C:\Users\Leejjon\AppData\Local\Temp\gae-staging-blindepoule684\app.yaml]
source:          [C:\Users\Leejjon\AppData\Local\Temp\gae-staging-blindepoule684]
target project:  [blindepoule]
target service:  [default]
target version:  [6]
target url:      [https://blindepoule.appspot.com]


Beginning deployment of service [default]...
Some files were skipped. Pass `--verbosity=info` to see which ones.
You may also view the gcloud log file, found at
[C:\Users\Leejjon\AppData\Roaming\gcloud\logs\2017.07.27\23.15.12.062000.log].
#============================================================#
#= Uploading 4 files to Google Cloud Storage                =#
#============================================================#
File upload done.
Updating service [default]...
..............done.
Updating service [default]...
.Waiting for operation [apps/blindepoule/operations/5106d598-f760-4079-a358-4b2148c622cf] to complete...
..done.
done.
Deployed service [default] to [https://blindepoule.appspot.com]

You can stream logs from the command line by running:
  $ gcloud app logs tail -s default

To view your application in the web browser run:
  $ gcloud app browse
'[2017-07-27 23:15:04] Maven build: Blindpool. Project: blindepoule. Version: 6' has been deployed successfully.

As you can see it just finishes fine, should I worry about getting rid of the warnings?

Update: Found out that Google wants us to move to use the cloud tools appengine maven plugin: https://cloud.google.com/appengine/docs/standard/java/tools/migrate-maven

If I use that recommended setting and run gcloud appengine:deploy I get the exact same error as I got in IntelliJ before. So using the old appengine maven plugin works but it goes against what Google recommends.

like image 991
Leejjon Avatar asked Jul 27 '17 21:07

Leejjon


1 Answers

It seems you need to manage correctly versions in your pom.xml. Some Plugins are not accessible any more under specified version.

I've tried:

    <plugins>
    ...
        <plugin>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-maven-plugin</artifactId>
            <!--<version>${appengine.target.version}</version>-->
            <version>1.8.3</version>
            <configuration>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <!--<version>${jetty.maven.plugin}</version>-->
            <version>9.4.0.v20161208</version>
        </plugin>
    </plugins>

and than I've started server without problem.


Plugin and dependency version can be different (because of shifted releases or cleaning repositories). You can use plugin versions that I've specified or play changing ones more if you want use same version for dependency and plugin.


Connected to the target VM, address: '127.0.0.1:64711', transport: 'socket'
Jul 28, 2017 1:06:54 AM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Connected to server
Jul 27, 2017 10:06:54 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: jetty-6.1.x
Jul 27, 2017 10:06:55 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Started SelectChannelConnector@localhost:8080
Jul 27, 2017 10:06:55 PM com.google.appengine.tools.development.AbstractModule startup
INFO: Module instance default is running at http://localhost:8080/
Jul 27, 2017 10:06:55 PM com.google.appengine.tools.development.AbstractModule startup
INFO: The admin console is running at http://localhost:8080/_ah/admin
Jul 28, 2017 1:06:55 AM com.google.appengine.tools.development.DevAppServerImpl doStart
INFO: Dev App Server is now running
like image 126
Sergii Avatar answered Nov 02 '22 18:11

Sergii