简体   繁体   English

java.lang.NoSuchMethodError: com.google.common.base.CharMatcher.ascii()

[英]java.lang.NoSuchMethodError: com.google.common.base.CharMatcher.ascii()

I got this error on glassfish server我在 glassfish 服务器上收到此错误

java.lang.NoSuchMethodError: com.google.common.base.CharMatcher.ascii()Lcom/google/common/base/CharMatcher;
at com.google.common.io.BaseEncoding$Alphabet.<init>(BaseEncoding.java:453)
at com.google.common.io.BaseEncoding$Base64Encoding.<init>(BaseEncoding.java:892)
at com.google.common.io.BaseEncoding.<clinit>(BaseEncoding.java:317)
at com.google.cloud.storage.StorageImpl.create(StorageImpl.java:133)
at utils.GoogleCouldBucket_Utils.initGoogleBucket(GoogleCouldBucket_Utils.java:52)
at controllers.proTektantController.loggedInTryingToRegister(proTektantController.java:783)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at javax.el.ELUtil.invokeMethod(ELUtil.java:332)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:537)
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256)
at com.sun.el.parser.AstValue.invoke(AstValue.java:283)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at com.sun.faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:128)
at javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2584)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:108)
at javax.faces.event.ComponentSystemEvent.processListener(ComponentSystemEvent.java:118)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2169)
at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2114)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:287)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:245)
at javax.faces.application.ApplicationWrapper.publishEvent(ApplicationWrapper.java:726)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:748)

I am making website on glassfish.我正在制作关于 glassfish 的网站。 I already added amazon bucket support.我已经添加了亚马逊存储桶支持。 It works but I had issue with them so I moved to google cloud platform.它有效,但我遇到了问题,所以我搬到了谷歌云平台。 I try to add google bucket.我尝试添加谷歌存储桶。

public static boolean initGoogleBucket()
{
    try {
        ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
        InputStream iStream = externalContext.getResourceAsStream("/WEB-INF/googleBucket.json");
        if(iStream == null) {
            return false;
        }
        Credentials credentials = GoogleCredentials.fromStream(iStream);
        storage = StorageOptions.newBuilder().setCredentials(credentials).setProjectId(GCP_PROJECT).build().getService();

        BlobId blobId = BlobId.of(GCP_BUCKET,"blob_name3");
        BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
        String str = "Hello, Cloud Storage!";

        Blob blob = storage.create(blobInfo, str.getBytes());
        System.out.println("time:="+blob.getCreateTime() + ", link:"+blob.getMediaLink());
        return true;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return false;
    }
}

In debugger i found it failed at "storage.create"在调试器中,我发现它在“storage.create”失败

I read online and only one reason which I found is "google-collet.jar".我在网上阅读,我发现的唯一一个原因是“google-collet.jar”。 I can not find this jar in my libraries.我在我的库中找不到这个 jar。 May be is have other dependence.可能是有其他依赖。

Here list of my jars:这是我的罐子清单:

glassfish4.1.1/glassfish/domains/domain1/eclipseApps/<project>/WEB-INF/lib$ ls
BootsFaces-OSP-dist-0.7.0.jar
api-common-1.7.0.jar
aspectjrt-1.8.2.jar
aspectjweaver.jar
aws-java-sdk-1.11.285-javadoc.jar
aws-java-sdk-1.11.285-sources.jar
aws-java-sdk-1.11.285.jar
aws-java-sdk.jar
aws-swf-build-tools-1.1.jar
bootstrap-1.0.10.jar
commons-beanutils-1.8.3.jar
commons-codec-1.9.jar
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-logging-1.1.3.jar
freemarker-2.3.9.jar
gax-1.30.0.jar
gax-httpjson-0.47.0.jar
gmaps4jsf-core-3.0.0.jar
google-api-client-1.24.1.jar
google-api-services-storage-v1-rev135-1.24.1.jar
google-auth-library-credentials-0.10.0.jar
google-auth-library-oauth2-http-0.10.0.jar
google-cloud-core-1.40.0.jar
google-cloud-core-http-1.40.0.jar
google-cloud-storage-1.40.0.jar
google-http-client-1.24.1.jar
google-http-client-appengine-1.24.1.jar
google-http-client-jackson-1.24.1.jar
google-http-client-jackson2-1.24.1.jar
google-oauth-client-1.24.1.jar
grpc-context-1.12.0.jar
gson-2.7.jar
guava-23.0.jar
httpclient-4.5.2.jar
httpcore-4.4.4.jar
ion-java-1.0.2.jar
jackson-annotations-2.6.0.jar
jackson-core-2.6.7.jar
jackson-core-asl-1.9.11.jar
jackson-databind-2.6.7.1.jar
jackson-dataformat-cbor-2.6.7.jar
javax.el.jar
javax.mail-api-1.4.6.jar
jmespath-java-1.11.285.jar
joda-time-2.8.1.jar
joda-time-2.9.2.jar
jsf-facelets.jar
jsr305-3.0.2.jar
jstl-1.2.jar
jstl-api-1.2.jar
jstl-impl.jar
jstl.jar
myfaces-api-2.1.5.jar
myfaces-bundle-2.1.5.jar
myfaces-impl-2.1.5.jar
mysql-connector-java-5.1.9.jar
netty-buffer-4.1.17.Final.jar
netty-codec-4.1.17.Final.jar
netty-codec-http-4.1.17.Final.jar
netty-common-4.1.17.Final.jar
netty-handler-4.1.17.Final.jar
netty-resolver-4.1.17.Final.jar
netty-transport-4.1.17.Final.jar
opencensus-api-0.15.0.jar
opencensus-contrib-http-util-0.15.0.jar
primefaces-6.2.jar
proto-google-common-protos-1.12.0.jar
proto-google-iam-v1-0.12.0.jar
protobuf-java-3.6.0.jar
protobuf-java-util-3.6.0.jar
spring-beans-3.0.7.RELEASE.jar
spring-context-3.0.7.RELEASE.jar
spring-core-3.0.7.RELEASE.jar
spring-test-3.0.7.RELEASE.jar
threetenbp-1.3.3.jar

also I have "Glassfish System Libraries" and "JRE System Library[Java Se 8 [1.8.0_161]]"我还有“Glassfish 系统库”和“JRE 系统库[Java Se 8 [1.8.0_161]]”

I am using eclipse.我正在使用日食。 I am familiar with Marven.我对马文很熟悉。

Please

This is caused by a collision in your Guava dependencies.这是由 Guava 依赖项中的冲突引起的。 Some other dependency in your classpath is using a different version of Guava.类路径中的其他一些依赖项正在使用不同版本的 Guava。

I would suggest running mvn dependency:tree -Dverbose -Dincludes=guava and mvn dependency:tree -Dverbose -Dincludes=guava-jdk5 .我建议运行mvn dependency:tree -Dverbose -Dincludes=guavamvn dependency:tree -Dverbose -Dincludes=guava-jdk5 This will allow you to find dependency conflicts in your classpath.这将允许您在类路径中找到依赖项冲突。 The guava-jdk5 dependency is a common culprit that causes this particular error. guava-jdk5依赖项是导致此特定错误的常见罪魁祸首。

More information on conflict resolvement is also available on the Maven site; Maven 站点上还提供了有关冲突解决的更多信息; https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html

Once you have identified which dependency is causing the conflict, you can introduce exclusion rules in that dependency in your pom.xml to exclude the dependencies causing the issue, for example;一旦确定了导致冲突的依赖项,您可以在pom.xml中的该依赖项中引入排除规则以排除导致问题的依赖项,例如;

<exclusions>
    <exclusion>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
    </exclusion>
    <exclusion>
        <groupId>com.google.guava</groupId>
        <artifactId>guava-jdk5</artifactId>
    </exclusion>
</exclusions>

I solved problem but downgrade google cloud libraries and use inputstream instead of bytes array.我解决了问题,但降级谷歌云库并使用输入流而不是字节数组。 google deprecated this method but with downgraded libraries and with @SuppressWarnings("deprecation") it works.谷歌弃用了这种方法,但使用降级的库和 @SuppressWarnings("deprecation") 它可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.NoSuchMethodError:com.google.common.base.Preconditions - java.lang.NoSuchMethodError: com.google.common.base.Preconditions java.lang.NoClassDefFoundError: com.google.common.base.CharMatcher - java.lang.NoClassDefFoundError: com.google.common.base.CharMatcher ANDROID错误:java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkState - ANDROID ERROR: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument - java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState - java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState spark 1.4.0 java.lang.NoSuchMethodError:com.google.common.base.Stopwatch.elapsedMillis()J - spark 1.4.0 java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.elapsedMillis()J java.lang.NoSuchMethodError:com.google.common.base.Platform.systemNanoTime()J - java.lang.NoSuchMethodError: com.google.common.base.Platform.systemNanoTime()J 错误:: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V - Error :: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V 线程“main”中的异常 java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;) - Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;) java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V 与 IE 和 Selenium 通过 Java - java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;I)V with IE and Selenium through Java
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM