小编kav*_*i77的帖子

HttpURLConnection无效的HTTP方法:PATCH

当我尝试使用非标准的HTTP方法,如PATCH和URLConnection:

    HttpURLConnection conn = (HttpURLConnection) new URL("http://example.com").openConnection();
    conn.setRequestMethod("PATCH");
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

java.net.ProtocolException: Invalid HTTP method: PATCH
at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:440)
Run Code Online (Sandbox Code Playgroud)

使用像Jersey这样的更高级别的API会产生相同的错误.是否有解决方法来发出PATCH HTTP请求?

java httpurlconnection

64
推荐指数
6
解决办法
5万
查看次数

在Java 8中使用两个具有相同签名的默认方法实现两个接口

假设我有两个接口:

public interface I1
{
    default String getGreeting() {
        return "Good Morning!";
    }
}

public interface I2
{
    default String getGreeting() {
        return "Good Afternoon!";
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我想实现它们,将使用什么实现?

public class C1 implements I1, I2
{
    public static void main(String[] args)
    {
        System.out.println(new C1().getGreeting());
    }
}
Run Code Online (Sandbox Code Playgroud)

java interface java-8

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

为什么Double.NaN = 0.0d/0.0的定义中有"d"?

我刚刚看到了NaNin 的定义Double.class.它说:

 /**
   * A constant holding a Not-a-Number (NaN) value of type
   * {@code double}. It is equivalent to the value returned by
   * {@code Double.longBitsToDouble(0x7ff8000000000000L)}.
   */
  public static final double NaN = 0.0d / 0.0;
Run Code Online (Sandbox Code Playgroud)

我知道,根据Java规范这些文字代表了同一个号码:0.0,0.0d,和0.0D.

另外对于其他常量,他们没有使用'd'后缀:

public static final double POSITIVE_INFINITY = 1.0 / 0.0;
public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
Run Code Online (Sandbox Code Playgroud)

为什么他们需要在NaN定义中将后缀d写入0.0的第一部分?

这是故意的还是偶然的?

java

27
推荐指数
3
解决办法
6129
查看次数

使用HTTPS的XML名称空间URI?

xmlns拥有https协议的URI 更好吗?

例如,这是手册的推荐方式:

<http xmlns="http://www.springframework.org/schema/security"/>
Run Code Online (Sandbox Code Playgroud)

使用这种方式是合法的还是更好的?

<http xmlns="https://www.springframework.org/schema/security"/>
Run Code Online (Sandbox Code Playgroud)
  1. 是否有尝试连接到xmlnsURI 定义的地址的XML解析器?
  2. 解析器总是按xsi:schemaLocation属性下载模式?

xml schema uri xml-namespaces xml-parsing

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

Maven更改了不同配置文件的插件顺序

我有两个不同的pom.xml定义相同plugin(相同groupIdartifactId不同execution:-))的地方profiles.在executions以相同的定义phase,因此,为了通过从XML的顺序计算:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>echo</groupId>
    <artifactId>test</artifactId>
    <name>echo-test</name>
    <version>1.0.0</version>
    <packaging>pom</packaging>
    <profiles>
        <profile>
            <id>1st-profile</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>1st-antrun-echo</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <tasks>
                                        <echo>1st antrun plugin</echo>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>2nd-profile</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.soebes.maven.plugins</groupId>
                        <artifactId>maven-echo-plugin</artifactId>
                        <version>0.1</version>
                        <executions>
                            <execution>
                                <id>1st-soebes-echo</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>echo</goal>
                                </goals> …
Run Code Online (Sandbox Code Playgroud)

java maven-plugin maven-3 maven

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

如何在Java Websocket客户端中添加标头

我使用javax.websocket类连接到Java中的websocket服务器.

import javax.websocket.DeploymentException;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
import java.io.IOException;
import java.net.URI;

public class WSClient {
    private WebSocketContainer webSocketContainer;

    public void sendMessage(URI endpointURI, String message) throws IOException, DeploymentException {
        Session session = webSocketContainer.connectToServer(MyClientEndpoint.class, endpointURI);
        session.getAsyncRemote().sendText(message);
    }
}
Run Code Online (Sandbox Code Playgroud)

对于初始HTTP握手,我想在客户端向请求添加额外的HTTP标头

这可能吗?

我知道这可以在服务器端使用ServerEndpointConfig.Configurator.modifyHandshake.客户端是否有类似的解决方案?

java websocket java-websocket

11
推荐指数
2
解决办法
8323
查看次数

我可以混合Argument Captor和常规匹配器吗?

我需要在Mockito中验证一个带有多个参数的方法,但需要只捕获一个参数,其他我只需要一个简单的匹配器.那可能吗?

例如,如果我有:

@Mock
private Map<K,V> mockedMap;
...
ArgumentCaptor<K> argument = ArgumentCaptor.forClass(K.class);
verify(mockedMap).put(argument.capture(), any(V.class));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我是否需要为每个参数编写一个captor,尽管我只需要捕获第一个参数?

java junit mockito

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

Java支持多少个数组维,如[1] [1] [1] [1] .... [1]?

Java支持多少个数组维度a[1][1][1][1]....[1]?我可以为数组声明无限数量的维度吗?

java multidimensional-array

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

AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory

当我尝试在AppEngine中使用低级DataStore API时,我感到非常有趣ClassNotFoundException.此异常发生在云服务器中,而不是在本地实例中.我在当地使用appengine-java-sdk-1.7.4.

java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/DatastoreServiceFactory
    at org.himadri.scradiolisteners.server.FetchingServlet.writeDataLowLevel(FetchingServlet.java:47)
    at org.himadri.scradiolisteners.server.FetchingServlet.doGet(FetchingServlet.java:39)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:326)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
    at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:447)
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454)
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461)
    at com.google.tracing.TraceContext.runInContext(TraceContext.java:703)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458)
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.ClassNotFoundException: com.google.appengine.api.datastore.DatastoreServiceFactory …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine

6
推荐指数
2
解决办法
5774
查看次数

实例化Java对象时,父类是自动创建的对象吗?

假设我创建了一个对象,并运行了父类的一个构造函数.使用此构造函数,在幕后创建父对象的新对象?

如果没有,private父类的字段存储在哪里?实际上,您可以调用父对象的任何方法(有或没有super),该对象操作调用对象不可见的私有字段.

如果有人最熟悉Java内存模型,那么非常欢迎他或她的回答!

java java-memory-model

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