我正在Xcode中为Mac OS X开发一个应用程序,我正在尝试实现一个在Quicklook模式下打开图像的按钮(比如在Finder中选择图像并按<space>).
当您点击聊天期间下载的文件旁边的小圆形"眼睛"图标时,我希望这可以像Skype for Mac一样工作.
有关如何实现这一目标的任何建议?
有一个特定的WSDL,ServiceContractGenerator会继续生成消息契约(请求/响应包装器对象),这是我不想要的(我想要直接的参数).其他WSDL的工作正常.
当我使用Visual Studio创建WCF客户端("添加服务引用")并单击"高级..."时,"始终生成消息合同"复选框可以正确控制是否生成消息合同对象.
但是,当我使用ServiceContractGenerator类以编程方式生成WCF客户端时,它会不断生成消息协定.我尝试将ServiceContractGenerator的选项设置为ServiceContractGenerationOptions.None,但结果是相同的.
这是我使用的代码:
MetadataSet metadataSet = new MetadataSet();
metadataSet.MetadataSections.Add(MetadataSection.CreateFromServiceDescription(System.Web.Services.Description.ServiceDescription.Read(wsdlStream)));
WsdlImporter importer = new WsdlImporter(metadataSet);
if (serviceDescription != null)
importer.WsdlDocuments.Add(serviceDescription);
foreach (XmlSchema nextSchema in schemas)
importer.XmlSchemas.Add(nextSchema);
ServiceContractGenerator generator = new ServiceContractGenerator();
generator.Options = ServiceContractGenerationOptions.None;
foreach (ContractDescription nextContract in importer.ImportAllContracts())
generator.GenerateServiceContractType(nextContract);
if (generator.Errors.Count != 0)
throw new Exception("Service assembly compile error: \r\n - " + string.Join("\r\n - ", generator.Errors.Select(e => e.Message)));
// Use generator.TargetCompileUnit to generate the code...
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能使ServiceContractGenerator使用直接参数生成Web方法?
我正在努力成功地从网页上调用SOAP Web服务.Web服务是使用JAX-WS的Java Web服务.
这是我试图调用的Web方法:
@WebMethod
public String sayHi(@WebParam(name="name") String name)
{
System.out.println("Hello "+name+"!");
return "Hello "+name+"!";
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用JQuery库jqSOAPClient(http://plugins.jquery.com/project/jqSOAPClient)进行Web服务调用.
这是我用过的代码:
var processResponse = function(respObj)
{
alert("Response received: "+respObj);
};
SOAPClient.Proxy = url;
var body = new SOAPObject("sayHi");
body.ns = ns;
body.appendChild(new SOAPObject("name").val("Bernhard"));
var sr = new SOAPRequest(ns+"sayHi",body);
SOAPClient.SendRequest(sr,processResponse);
Run Code Online (Sandbox Code Playgroud)
似乎没有回应.在jqSOAPClient.js我记录xData.responseXML数据成员时,我得到'undefined'.在Web服务中,我看到了警告
2011年3月24日上午10:49:51 com.sun.xml.ws.transport.http.server.WSHttpHandler handleExchange警告:无法处理HTTP方法:选项
我也尝试过使用javascript库soapclient.js(http://www.codeproject.com/kb/Ajax/JavaScriptSOAPClient.aspx).我在这里使用的客户端代码是
var processResponse = function(respObj)
{
alert("Response received: "+respObj);
};
var paramaters = new SOAPClientParameters();
paramaters.add("name","Bernhard");
SOAPClient.invoke(url,"sayHi",paramaters,true,processResponse);
Run Code Online (Sandbox Code Playgroud)
我绕过了soapclient.js中获取WSDL的部分,因为它不起作用(我得到了:IOException: An established …
我正在开发一个iOS应用程序,它允许通过电子邮件发送文件来导出数据.该应用程序将文件类型注册为具有扩展名"sainputs"的文件(这样,应用程序也可以通过电子邮件或保管箱打开文件以导入值 - 这样可以正常工作).我试图添加将文件发送到任何其他可以打开各种类型的文件的应用程序的可能性.Dropbox就是一个很好的例子 - 它应该能够打开任何类型的文件.
我目前正在通过显示使用该文件的URL初始化的UIDocumentInteractionController来尝试此操作.显示时,Dropbox应用程序将显示为打开文件的可用选项之一,如预期的那样.
但是,当我按下Dropbox图标时,没有任何反应,在控制台中我看到以下文字:
LaunchServices: Invalid LSOpenOperation request - No applications found to open document
Run Code Online (Sandbox Code Playgroud)
在app的plist文件中,它注册了一个具有UTI com.mycompany.myapp.sainputs的文档类型,它注册了一个导出类型UTI,其标识符为com.mycompany.myapp.sainputs,公共文件扩展名为"sainputs",MIME类型为myapp /输入.
以下是plist文件的相关摘录:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>My App's File Type</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.mycompany.myapp.sainputs</string>
</array>
</dict>
<array>
.
.
.
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array/>
<key>UTTypeDescription</key>
<string>My App's File Type</string>
<key>UTTypeIdentifier</key>
<string>com.mycompany.myapp.sainputs</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>sainputs</string>
<key>public.mime-type</key>
<string>steuerapp/inputs</string>
</dict>
</dict>
<array>
Run Code Online (Sandbox Code Playgroud)
我尝试在plist文件中将MIME类型更改为"application/octet-stream".它没有任何区别.
任何建议/想法将受到高度赞赏.
我正在开发一个iOS(iPhone/iPad)应用程序来进行Web服务调用,其中一个参数是.pfx文件.
我希望用户能够通过在电子邮件中选择其附件来将自己的.pfx文件导入应用程序(该应用程序已针对自定义文件类型执行此操作,其条目未在下面显示,但非常相似) .
在应用程序的Info.plist文件中,我在CFBundleDocumentTypes标记中添加了一个条目,在UTExportedTypeDeclarations标记中添加了一个条目,如下所示.在UTExportedTypeDeclarations中,我用于标识符'com.rsa.pkcs-12',它是用于pfx文件的UTI之一.我查了一下并输入了pfx文件的标准MIME类型(application/x-pkcs12).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
...
<key>CFBundleDocumentTypes</key>
<array>
...
<dict>
<key>CFBundleTypeName</key>
<string>Personal Information Exchange</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>com.rsa.pkcs-12</string>
</array>
</dict>
</array>
...
<key>UTExportedTypeDeclarations</key>
<array>
...
<dict>
<key>UTTypeConformsTo</key>
<array/>
<key>UTTypeDescription</key>
<string>Personal Information Exchange</string>
<key>UTTypeIdentifier</key>
<string>com.rsa.pkcs-12</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<string>pfx</string>
<key>public.mime-type</key>
<string>application/x-pkcs12</string>
</dict>
</dict>
</array>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
这不起作用.当我在Mail中打开pfx文件附件时,它会在"设置"中打开(它希望将该文件作为配置文件安装).当然,pfx文件类型已经存在于iOS中,因此不必在UTExportedTypeDeclarations中创建条目; 但是,删除此条目没有任何区别.当我在两个条目中使用自定义标识符(而不是"com.rsa.pkcs-12")时,会发生相同的行为.
我不想强迫用户更改附件文件的扩展名.有没有办法让iOS告诉用户是否用设置或我的应用程序打开文件?
我正在开发一个从Azure Service Bus队列中提取消息的Java应用程序.我正在使用Java Azure API(com.microsoft.windowsazure.services).我遇到的问题是,经过处理后删除代码消息有时会失败.
我的应用程序使用peek-lock接收模式,使用ServiceBusContract对象上的receiveQueueMessage()方法从队列中提取消息.一旦消息被成功处理,我通过调用deleteMessage()方法从队列中删除消息(我相信这个方法对应于.NET API中的Complete()方法).
但是,有时此方法调用失败.comMun.jersey.api.client.UniformInterfaceException异常由deleteMessage()记录到控制台,但它不会抛出此异常(我将在下面生成输出).异常似乎告诉我无法找到该消息.发生这种情况时,消息将保留在队列中.实际上,下一次调用receiveQueueMessage()会再次检索此消息.然后删除失败一次或两次,然后成功.之后检索的消息成功删除.
以下是出现问题的代码:
ReceiveMessageOptions receiveOptions = ReceiveMessageOptions.DEFAULT;
receiveOptions.setReceiveMode(ReceiveMode.PEEK_LOCK);
BrokeredMessage message = serviceBus.receiveQueueMessage("my_queue",receiveOptions).getValue();
// Process the message
System.out.println("Delete message with ID: "+message.getMessageId());
serviceBus.deleteMessage(message);
Run Code Online (Sandbox Code Playgroud)
以下是出现问题时输出的示例:
Delete message with ID: 100790000086491
2013/01/22 12:58:29 com.microsoft.windowsazure.services.serviceBus.implementation.ServiceBusExceptionProcessor processCatch
WARNING: com.sun.jersey.api.client.UniformInterfaceException: DELETE https://voyagernetzmessaging.servicebus.windows.net/sms_queue/messages/24/efa56a1c-95e8-4cd6-931a-972eac21563a returned a response status of 404 Not Found
com.sun.jersey.api.client.UniformInterfaceException: DELETE https://voyagernetzmessaging.servicebus.windows.net/sms_queue/messages/24/efa56a1c-95e8-4cd6-931a-972eac21563a returned a response status of 404 Not Found
at com.sun.jersey.api.client.WebResource.voidHandle(WebResource.java:697)
at com.sun.jersey.api.client.WebResource.delete(WebResource.java:261)
at com.microsoft.windowsazure.services.serviceBus.implementation.ServiceBusRestProxy.deleteMessage(ServiceBusRestProxy.java:260)
at com.microsoft.windowsazure.services.serviceBus.implementation.ServiceBusExceptionProcessor.deleteMessage(ServiceBusExceptionProcessor.java:176)
at microworks.voyagernetzmessaging.smsservice.SmsSender$Runner.finalizeSms(SmsSender.java:114)
at microworks.voyagernetzmessaging.smsservice.SmsSender$Runner.finalizeSms(SmsSender.java:119)
at microworks.voyagernetzmessaging.smsservice.SmsSender$Runner.run(SmsSender.java:340)
com.microsoft.windowsazure.services.core.ServiceException: com.sun.jersey.api.client.UniformInterfaceException: DELETE …Run Code Online (Sandbox Code Playgroud) 我是开发JSF的新手(一般是Web开发的新手),我试图在页面上放置一个图像.我正在Eclipse中开发我的JSF应用程序并在Glassfish 3.1.2上运行它.我已将Glassfish注册为Eclipse中的服务器,并通过Eclipse运行应用程序.
我在xhtml页面上使用以下标记:
<h:graphicImage library="images" name="logo.png"/>
Run Code Online (Sandbox Code Playgroud)
我在META-INF/resources/images/logo.png中复制了图像.图像没有出现在页面上,当我查看页面源时,我看到了元素
<img src="RES_NOT_FOUND" />
Run Code Online (Sandbox Code Playgroud)
表示未找到图像.
当我将我的应用程序导出到war文件并通过autodeploy文件夹将其部署到Glassfish时,我得到相同的结果 - 页面显示,但图像不会出现.
任何人都可以建议为什么没有找到图像资源?
我目前正在使用QuickFIX/n来构建一个接受器服务,我已经构建了一个启动器来测试接受器.我怀疑我得到的错误是由于接收器中的错误,因为同一错误发生在其他人发送给服务的消息上.
在发起程序中,我构建并发送AllocationInstruction,如下所示:
var fix44Message = new QuickFix.FIX44.AllocationInstruction(
new AllocID(request.Info.AllocationID), EnumHelpers.ParseAllocationTransactionType(request.Info.AllocationTransactionType), EnumHelpers.ParseAllocationType(request.Info.AllocationType),
new AllocNoOrdersType(AllocNoOrdersType.EXPLICIT_LIST_PROVIDED), EnumHelpers.ParseSide(request.Info.Side), new Symbol(request.Info.Symbol), new Quantity(request.Info.Quantity),
new AvgPx(request.Info.AveragePrice), new TradeDate(request.Info.TradeDate.ToString("yyyyMMdd")))
{
SecurityID = new SecurityID(request.Info.SecurityID),
SecurityIDSource = new SecurityIDSource(request.Info.SecurityIDSource),
SecurityExchange = new SecurityExchange(request.Info.SecurityExchange),
Issuer = new Issuer(request.Info.Issuer),
Currency = new Currency(request.Info.Currency),
TransactTime = new TransactTime(request.Info.TransactTime),
SettlDate = new SettlDate(request.Info.SettlementDate.ToString("yyyyMMdd")),
GrossTradeAmt = new GrossTradeAmt(request.Info.GrossTradeAmount),
NetMoney = new NetMoney(request.Info.NetMoney)
};
var group = new QuickFix.FIX44.AllocationInstruction.NoOrdersGroup
{
ClOrdID = new ClOrdID(order.ClOrdID),
OrderID = new OrderID(order.OrderID),
OrderQty = new OrderQty(order.Quantity)
};
fix44Message.AddGroup(group); …Run Code Online (Sandbox Code Playgroud)