我有一个应用程序,我需要在第一次运行时通过SOAP调用将大量数据下载到Web服务中.然后将响应发送到一个函数,该函数转换XML并将数据存储在db文件中.
数据大小超过16MB,每次都有一个java.lang.OutOfMemoryError.
修改Web服务以提供较少量的数据不是一种选择.
有没有办法能够下载大数据?或许像InputStream?
这是我的代码
public Protocol[] getProtocols() {
String METHOD_NAME = "GetProtocols";
String SOAP_ACTION = "urn:protocolpedia#GetProtocols";
Log.d("service", "getProtocols");
SoapObject response = invokeMethod(METHOD_NAME, SOAP_ACTION);
return retrieveProtocolsFromSoap(response);
}
private SoapObject invokeMethod(String methodName, String soapAction) {
Log.d(TAG, "invokeMethod");
SoapObject request = GetSoapObject(methodName);
SoapSerializationEnvelope envelope = getEnvelope(request);
return makeCall(envelope, methodName, soapAction);
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议在这种情况下应该做些什么?
谢谢并问候Mukul
我正在使用Paperclip和S3进行图像上传,并试图从我的测试套件中删除对S3的调用.我找到了提到做的思想机器人帖子
a.cover { a.paperclip_fixture('album', 'cover', 'png') }
Run Code Online (Sandbox Code Playgroud)
但这给了我一个"错误的参数数量(4个2)"错误.我尝试将上面的参数切换到一个数组,这会删除原始错误,但会出现错误,说"属性已定义:paperclip_fixture".
有没有人能够使这个工作?另外,我最好将本地文件系统用于开发环境.是否有捷径可寻?
我有一个产品,包含可以安装到不同位置的多个功能,例如,功能1是安装在程序文件中的可执行文件,功能2是安装在wwwroot中的网站.但是,功能1和功能2都依赖于许多相同的dll,因此需要将包含这些dll的组件安装在2个不同的位置,具体取决于安装的功能.
有没有办法在不定义每个组件两次的情况下实现这一目标?
为了提供我想要实现的更完整的示例,可以使用以下代码编译以下完整的wxs文件:
> candle.exe Foobar.wxs
> light.exe -ext WixUIExtension Foobar.wixobj
> msiexec/i Foobar.msi
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Product Name='Foobar 1.0'
Id='E578DF12-DDE7-4BC2-82CD-FF11862862D5'
UpgradeCode='90F09DD5-E01B-4652-8971-515997730195'
Language='1033'
Codepage='1252'
Version='1.0.0'
Manufacturer='Acme Ltd.'>
<Package Id='*'
Keywords='Installer'
Description="Acme 1.0 Installer"
InstallerVersion='100'
Languages='1033'
Compressed='yes'
SummaryCodepage='1252' />
<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
<Property Id='DiskPrompt' Value="Acme 1.0 Installation" />
<Directory Id='TARGETDIR' Name='SourceDir'>
<!-- Directory 1 (Program Files) -->
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="PROGRAM_INSTALLDIR" Name="Acme" />
</Directory>
<!-- Directory 2 (wwwroot) -->
<Directory Id="Inetpub" Name="Inetpub">
<Directory Id="wwwroot" …Run Code Online (Sandbox Code Playgroud) 我在python中编写脚本,但在检查目录,文件创建等情况下无法使用多个stings,
我正在使用它来获取用户输入: drive = raw_input('enter drive name to make backup ')
if not os.path.exists('/media/%s/backup' %drive):
os.mkdir('/media/%s/backup' %drive)
Run Code Online (Sandbox Code Playgroud)
上面的代码是有效的,但下面的tarfile给出了一个错误........
./backup4.py
enter drive name to make backup PENDRIVE
Traceback (most recent call last):
File "./backup4.py", line 17, in <module>
tarFile = tarfile.open("/media/%s/backup/%s.tar.bz2" %drive %dateVar, 'w:bz2')
TypeError: not enough arguments for format string
tarFile = tarfile.open("/media/%s/backup/%s.tar.bz2" %drive %dateVar, 'w:bz2')
Run Code Online (Sandbox Code Playgroud)
我应该对上面的tarfile.open做什么改变?
我正在尝试Drawable背景,到目前为止没有任何问题.
我现在正试图在运行时更改渐变背景颜色.
不幸的是,似乎没有API可以在运行时更改它.甚至没有尝试变异()drawable,如下所述:可绘制的突变
示例XML看起来像这样.它正如预期的那样有效.
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#330000FF"
android:endColor="#110000FF"
android:angle="90"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
遗憾的是,我想要一个具有各种颜色的列表,并且它们必须在运行时以编程方式进行编程.
还有另一种方法可以在运行时创建此渐变背景吗?甚至可能不完全使用XML?
我把我的C#应用程序连接到Jet 4.0引擎.当我运行查询"select*from open"时(我认为"open"是一个关键字,这就是为什么我得到一个异常,但是......)我得到这个异常:"IErrorInfo.GetDescription失败并带有E_FAIL(0x80004005) )".我通常会得到更多人类可读的异常,告诉我我的查询有什么问题.这个看起来更像是Jet引擎中的一个bug.我刚刚在Microsoft Access 2002中测试运行相同的查询,它将"打开"视为完全有效的名称.我可以创建一个名为"open"的表,并用它做任何我想做的事.我只需要知道它是否是Jet引擎中的一个错误,所以我可以继续为人类可读的消息替换所需的消息并向用户显示,或者如果我的代码有问题.
class A
{
A a;//why can't we do this
};
Run Code Online (Sandbox Code Playgroud) 我正在阅读并听到一些痛点,我想知道我是否应该走那条路.更不用说,我似乎无法找到任何权威文档(来自微软).如果你说我不应该使用它,你会建议什么途径?我正试图让一个新网站开始,但我想第一次就做好.
我正在玩C#,想加快一个程序.我做了改变,并且能够这样做.但是,我需要帮助理解为什么变化使它变得更快.
我试图将代码简化为更容易理解的问题.Score1和Report1是较慢的方式.Score2和Report2是更快的方式.第一种方法首先并行地在结构中存储字符串和int.接下来,在串行循环中,它循环遍历这些结构的数组并将其数据写入缓冲区.第二种方法首先将数据并行写入字符串缓冲区.接下来,在串行循环中,它将字符串数据写入缓冲区.以下是一些示例运行时间:
运行1总平均时间= 0.492087秒运行2总平均时间= 0.273619秒
当我使用早期的非并行版本时,时间几乎相同.为什么与并行版本的区别?
即使我减少Report1中的循环以将单行输出写入缓冲区,它仍然较慢(总时间约为.42秒).
这是简化的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Threading.Tasks;
using System.IO;
namespace OptimizationQuestion
{
class Program
{
struct ValidWord
{
public string word;
public int score;
}
ValidWord[] valid;
StringBuilder output;
int total;
public void Score1(string[] words)
{
valid = new ValidWord[words.Length];
for (int i = 0; i < words.Length; i++)
{
StringBuilder builder = new StringBuilder();
foreach (char c in words[i])
{
if (c != 'U')
builder.Append(c);
} …Run Code Online (Sandbox Code Playgroud) 验证后,我必须验证并连接多个变量.
<xsl:variable name="val1" select="//xpath"/>
<xsl:variable name="val2" select="//xpath"/>
<xsl:variable name="val3" select="//xpath"/>
<xsl:variable name="val4" select="//xpath"/>
<xsl:variable name="val5" select="//xpath"/>
Run Code Online (Sandbox Code Playgroud)
有没有可用的模板,或任何人都可以帮助我这样做.
从评论更新
我想连接五个这样的值:Address, Address1, City, State, Zipcode.如果Address缺少,我会得到像这样的输出" , address1, city, state, zipcode".我想摆脱第一个逗号.
<xsl:variable name="__add" select="translate(//*/text()[contains(., 'Address')]/following::td[contains(@class, 'fnt')][1], ',', '')"/>
<xsl:variable name="address">
<xsl:for-each select="$__add | //*/text()[contains(., 'City')]/following::td[contains(@class, 'fnt')][1] | //*/text()[contains(., 'State')]/following::td[contains(@class, 'fnt')][1] | //*/text()[contains(., 'Pincode')]/following::td[contains(@class, 'fnt')][1]">
<xsl:value-of select="concat(substring(', ', 1 div (position()!=1)), .)"/>
</xsl:for-each>
</xsl:variable>
Run Code Online (Sandbox Code Playgroud)