小编use*_*841的帖子

java.lang.NoClassDefFoundError:带有AmazonHttpClient的org/apache/http/conn/SchemePortResolver

所有

当我将aws库更新到最新的1.11.3时,我在项目中遇到了这个错误.

引起:

java.lang.NoClassDefFoundError: org/apache/http/conn/SchemePortResolver
at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.<init>(ApacheHttpClientFactory.java:40)
at com.amazonaws.http.AmazonHttpClient.<clinit>(AmazonHttpClient.java:97)
at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:145)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:393)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:373)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:355)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:339)
Run Code Online (Sandbox Code Playgroud)

在我的pom.xml中

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-core</artifactId>
        <version>1.11.3</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-s3</artifactId>
        <version>1.11.3</version>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-kms</artifactId>
        <version>1.11.3</version>
    </dependency>
    <dependency>
         <groupId>org.bouncycastle</groupId>
          <artifactId>bcprov-ext-jdk15on</artifactId>
         <version>1.54</version>
    </dependency>
    <dependency>
         <groupId>com.amazonaws</groupId>
         <artifactId>aws-encryption-sdk-java</artifactId>
          <version>0.0.1-SNAPSHOT</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

谁知道我做错了什么?

谢谢

java amazon-web-services

10
推荐指数
1
解决办法
1万
查看次数

我应该在OPTIONS请求之后的实际请求中向任何非允许的来源发送任何Access-Control-Allow-Origin标头吗?

我对它是如何工作有一个大概的了解.如果请求的"origin"标头有效(允许),则返回相同的"ORIGIN"值

但我不知道:

  1. 对于OPTIONS请求之后的实际请求,我是否需要包含我返回到客户端以进行预检请求的完全相同的Access-Control-Allow-Origin标头?当实际请求中存在"ORIGIN"标头时,服务器代码是否只需要执行此操作?(在下面的代码中,我没有检查请求是OPTIONS /预检请求还是实际请求,我假设相同的代码可以同时适用于两者并且没有任何损害).

(更多细节,因为"当请求的凭据模式为'include'时,响应中'Access-Control-Allow-Origin'标头的值不能是通配符'*',所以我需要来自的'ORIGIN值'要求重新回复.

  1. 如果不允许使用ORIGIN,我应该返回什么?

    根本不包括Access-Control-Allow-Origin标头?
    或setHeader("Access-Control-Allow-Origin","")或setHeader("Access-Control-Allow-Origin","null")?

public class CORSResponseFilter implements ContainerResponseFilter {

@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
    MultivaluedMap<String, Object> headers = responseContext.getHeaders();

    String origin = requestContext.getHeaderString("Origin"); 


String origin = requestContext.getHeaderString("Origin");

    URL originUrl = null;
    try {
        if (StringUtils.hasText(origin)) {
            originUrl = new URL(origin);

            Pattern hostAllowedPattern = Pattern.compile("(.+\\.)*mydomain\\.com", Pattern.CASE_INSENSITIVE);

            if (hostAllowedPattern.matcher(originUrl.getHost()).matches()) {
                headers.add("Access-Control-Allow-Origin", origin);
            } else {
                headers.add("Access-Control-Allow-Origin", "");
            }
            headers.add("Vary", "Origin");
        }

        headers.add("Access-Control-Allow-Credentials", "true");
        headers.add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
        headers.add("Access-Control-Allow-Headers",
Run Code Online (Sandbox Code Playgroud)

cross-domain cors preflight

5
推荐指数
1
解决办法
1667
查看次数

echache3 XML解析问题

出于某种原因,我无法将expiry元素添加到ehcache3配置xml中.没有到期元素,它工作正常.

  <config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
    xmlns='http://www.ehcache.org/v3'
    xmlns:jsr107='http://www.ehcache.org/v3/jsr107'>

  <service>
    <jsr107:defaults>
      <jsr107:cache name="people" template="heap-cache"/>
    </jsr107:defaults>
  </service>

  <cache-template name="heap-cache">
    <listeners>
        <listener>
          <class>org.terracotta.ehcache.EventLogger</class>
          <event-firing-mode>ASYNCHRONOUS</event-firing-mode>
          <event-ordering-mode>UNORDERED</event-ordering-mode>
          <events-to-fire-on>CREATED</events-to-fire-on>
          <events-to-fire-on>UPDATED</events-to-fire-on>
          <events-to-fire-on>EXPIRED</events-to-fire-on>
          <events-to-fire-on>REMOVED</events-to-fire-on>
          <events-to-fire-on>EVICTED</events-to-fire-on>
        </listener>
    </listeners>
     <expiry>
        <ttl unit="seconds">10</ttl>
    </expiry>
    <resources>
      <heap unit="entries">2000</heap>
      <offheap unit="MB">100</offheap> <!-- unit of measure is case sensitive! -->
    </resources>
  </cache-template>
</config>
Run Code Online (Sandbox Code Playgroud)

错误消息是:

org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'expiry'. One of '{"http://www.ehcache.org/v3":heap, "http://www.ehcache.org/v3":resources, "http://www.ehcache.org/v3":heap-store-settings, "http://www.ehcache.org/v3":disk-store-settings, "http://www.ehcache.org/v3":service-configuration}' is expected.
Run Code Online (Sandbox Code Playgroud)

但是看看这个xsd:http: //www.ehcache.org/schema/ehcache-core.xsd 我没看到标签有什么问题,任何人都有任何想法?

xml ehcache-3

3
推荐指数
1
解决办法
1132
查看次数

javascript中与java不同的JSON字符编码

下面的java代码

    JSONObject obj = new JSONObject();
    try{
        obj.put("alert","•é");
        byte[] test = obj.toString().getBytes("UTF-8");
        logger.info("bytes are"+ test);
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    };
Run Code Online (Sandbox Code Playgroud)

生成一个 JSONObject 转义项目符号字符,但不是带有严重的拉丁字母 e,例如 ""\u2022é",字节码为 [123, 34, 97, 108, 101, 114, 116, 34, 58, 34, 92, 117, 50, 48, 50, 50, -61, -87, 34, 125]

如何在 Javascript 中获得相同的精确输出(就字节序列而言)?我不明白为什么 JSONObject 只转义一个字符而不转义另一个。我不知道它遵循什么规则。

似乎在 javascript 中,我只能转义除 ASCII 以外的所有内容(例如。\u007f-\uffff)或根本不转义。

谢谢!

javascript java unicode json jsonobject

1
推荐指数
1
解决办法
1708
查看次数