我有一个从服务器下载内容的WCF客户端.
服务合同是;
[OperationContract]
[WebGet(
UriTemplate = "/my/service/url/{method}/{filename}?tradeId={tradeId}&docType={docType}&language={language}&version={version}",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare)]
Stream GetDocument(string method, string filename, string tradeId, string docType, string version, string language);
Run Code Online (Sandbox Code Playgroud)
返回类型是Stream.我所做的只是将该流写入文件并且它可以工作.
现在,我想对此进行修改.我想知道下载文档的MIME类型.我知道它在服务器上设置正确.我只需要检索它.
我对WCF没什么经验,也不知道怎么做.有人能告诉我吗?
非常感谢
我对单元测试有疑问.我好几天都在考虑它,但找不到答案.
说,我有一个从Web服务下载文件并将其写入磁盘的功能.在没有实际看到文件被下载并写入磁盘的情况下测试它的目的是什么?
虽然我知道我们可以嘲笑网络服务,但我在这种情况下如何做到这一点?据我所知,Mockito之类的东西只是模仿行为而不是提供有意义的数据(本例中的文件).
即使我们可以模拟Web服务的行为,我如何模拟将文件写入磁盘而不真正写入磁盘?
对不起,我没有具体的例子.请随时提出您的意见.
非常感谢
我有一个场景,我想在方法中StringBuilder用作局部变量.我理解如果StringBuilder是一个本地方法变量,它不应该有任何关于线程安全的问题.
但是,如果我追加StringBuilder一个实例变量,如:
class MyClass {
private List<String> property;
public void myMethod() {
StringBuilder sb = new StringBuilder();
for(String s : property) {
sb.append(s);
}
}
// some other methods that mutate property
}
Run Code Online (Sandbox Code Playgroud)
我认为要使这个线程安全,只需更改StringBuilder为StringBuffer是不够的.我可以同步属性本身吗?
我错误地发出了命令,我现在犯了一个错误:
git push origin master
Run Code Online (Sandbox Code Playgroud)
在当地的一个分支上,比如,mybranch.此分支从master分支,包含master没有的一些本地更改.
我收到的消息是:
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)
我检查了主日志没有异常.我的问题是:
谢谢.
我有一个关于 Spring 如何处理多个属性占位符的问题。
我有这部分代码:
<context:property-placeholder location="classpath:dir1/${myapp.system.property}.properties"/>
Run Code Online (Sandbox Code Playgroud)
属性 myapp.system.property 是定义的系统属性。
例如,如果将其定义为“devsystem”,则 devsystem.properties 中定义的所有属性都将被导入并可在下面的代码中使用。
现在我想要另一个属性文件,其名称由 devsystem.property 文件中的属性定义:
<context:property-placeholder location="classpath:dir1/${myapp.system.property}.properties"/>
<context:property-placeholder location="classpath:dir2/myapp-${myapp.environment}.properties"/>
Run Code Online (Sandbox Code Playgroud)
myapp.environment 是 devsystem.properties 文件中定义的属性。
这停止工作。Spring 无法解析 ${myapp.environment} 并抱怨它找不到文件 dir2/myapp-${myapp.environment}.properties。
有人可以让我知道我做错了什么,我该如何使它起作用?
非常感谢。
我有一个类定义了以下两个方法:
public Map<String, Map<String, String>> method(final Map<String, Map<String, String>> data)
public boolean method(final Map<String, String> data)
Run Code Online (Sandbox Code Playgroud)
基于Java类型擦除泛型,这段代码不应该编译,因为它们最终都是:
method(Map data)
Run Code Online (Sandbox Code Playgroud)
但是,此代码已在Java 6中成功编译,但未在Java 8中编译.
有人可以让我知道为什么它可以在Java 6下编译?
我正在尝试编写一些代码来检索字符串的前10个单词.
我能想象的最好的算法是按空格分割字符串并取前10个元素.然而,这不是很有效,因为弦可能很长.
Java中是否有更好的算法可以实现这一目标?
非常感谢.
有人错误地创建了一个表,其中所有列名都有一个前导空格.例如:'accountid'现在是'accountid'.
我将编写一个SQL语句来重命名这些列.我写的那个是:
ALTER TABLE mytable RENAME COLUMN ' accountid' TO 'accountid';
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
Error : ERROR: syntax error at or near "' accountid'"
Run Code Online (Sandbox Code Playgroud)
有人可以指导我如何重命名这些?如何更改我的语句以使其可运行?我使用PostgreSQL.
非常感谢.
我有以下方法,其目的是使用不可见的表单提交帖子请求.此请求是下载一个文件,该文件没有URL,但是动态地从二进制文件存储中获取.服务器端是Java Servlet.
function postCall(url, params) {
var newForm = jQuery('<form>', {
'method':'POST',
'action': url
});
for(key in params) {
if (params.hasOwnProperty(key)) {
newForm.append(jQuery('<input>', {
'id': key,
'value': params[key],
'type': 'hidden'
}));
}
}
newForm.submit();
}
Run Code Online (Sandbox Code Playgroud)
调用此方法时,服务器端未收到请求.我认为这段代码一定有问题.
这很奇怪,MapBinder不包含在从Maven存储库获得的Gucie 3.0中:
我的maven配置如下:
<dependencies>
....
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
</dependency>
....
</dependencies>
Run Code Online (Sandbox Code Playgroud)
maven存储库中的My Guice 3.0甚至没有包:
com.google.inject.multibindings
Run Code Online (Sandbox Code Playgroud)
有人可以指出我正确的方向吗?
非常感谢