我在我的AddFixedPriceItem请求中指定了一个SKU,但响应没有带回SKU(尽管在模式中指定了SKU).这是一个问题,因为我使用大型商家服务,可以一次提交多个项目.如果一个批次中的一个项目失败,我该如何判断它是哪一个?如何将SKU与ItemIds相关联?如果我无法将其映射回我的库存中的某些内容,则响应信息的价值非常小.
以下是不返回SKU的请求的示例:
<?xml version="1.0" encoding="UTF-8"?>
<BulkDataExchangeRequests xmlns="urn:ebay:apis:eBLBaseComponents">
<Header>
<SiteID>0</SiteID>
<Version>639</Version>
</Header>
<AddFixedPriceItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<Version>639</Version>
<Item>
<CategoryMappingAllowed>true</CategoryMappingAllowed>
<Country>US</Country>
<Currency>USD</Currency>
<Description>This is the description.</Description>
<ListingDuration>GTC</ListingDuration>
<ListingType>FixedPriceItem</ListingType>
<Location>Provo, UT</Location>
<PaymentMethods>PayPal</PaymentMethods>
<PayPalEmailAddress>ebay@mystore.com</PayPalEmailAddress>
<PrimaryCategory>
<CategoryID>63850</CategoryID>
</PrimaryCategory>
<Quantity>10</Quantity>
<ShippingDetails>
<SalesTax>
<SalesTaxPercent>6.5</SalesTaxPercent>
<SalesTaxState>UT</SalesTaxState>
<ShippingIncludedInTax>false</ShippingIncludedInTax>
</SalesTax>
<ShippingServiceOptions>
<ShippingService>UPSGround</ShippingService>
<ShippingServiceCost currencyID="USD">7.99</ShippingServiceCost>
<ShippingServiceAdditionalCost currencyID="USD">0.0</ShippingServiceAdditionalCost>
<ShippingServicePriority>1</ShippingServicePriority>
</ShippingServiceOptions>
<ShippingType>Flat</ShippingType>
<InsuranceDetails>
<InsuranceOption>NotOffered</InsuranceOption>
</InsuranceDetails>
</ShippingDetails>
<Site>US</Site>
<StartPrice currencyID="USD">100.0</StartPrice>
<Title>Test Product</Title>
<SKU>PROD02-TST</SKU>
<DispatchTimeMax>3</DispatchTimeMax>
<ReturnPolicy>
<ReturnsWithinOption>Days_30</ReturnsWithinOption>
<ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>
<Description>Our return policy details.</Description>
<ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>
</ReturnPolicy>
<InventoryTrackingMethod>ItemID</InventoryTrackingMethod>
</Item>
</AddFixedPriceItemRequest>
</BulkDataExchangeRequests>
Run Code Online (Sandbox Code Playgroud) 我已经看过关于这个主题的一些问题,但我正在寻找对这两种技术之间性能差异的一些见解.
例如,假设我正在记录事件日志,这些事件将通过特定事件的键/值对字典集进入系统.我将在事件表中记录一个带有基本数据的条目,但我需要一种方法来链接其他键/值数据.我永远不会知道会出现什么样的键或值,因此任何类型的预定义枚举表似乎都是不可能的.
此事件数据将持续流入,因此插入时间与查询时间一样重要.
当我查询特定事件时,我将使用事件上的一些字段以及键/值数据中的数据.对于XML方式,我只需使用Attributes.exists('xpath')语句作为where子句的一部分来过滤记录.
规范化的方法是使用具有基本键和值字段的表,其中包含指向事件记录的外部链接.这看起来干净简单,但我担心涉及的数据量.
有没有办法在Windows Azure中做动态弹性?如果我的工作人员开始变得过载,或者队列开始变得太满,或者太多工作人员没有工作要做,有没有办法通过代码动态添加或删除工作人员,或者只是手动完成(需要人工干预)现在?有没有人知道任何计划添加,如果它目前不可用?
我已经看到很多例子似乎表明我正在做的事情应该有效,但无论出于何种原因,它都没有.我正在尝试反序列化一组对象,其中一个属性是Dictionary,如下所示:
class Program
{
static void Main(string[] args)
{
var json = "{\"Collection\":[{\"ID\":\"1243\",\"Dictionary\":[{\"Key\":\"color\", \"Value\":\"red\"},{\"Key\":\"size\",\"Value\":\"large\"}]},{\"ID\":\"1243\",\"Dictionary\":[{\"Key\":\"color\", \"Value\":\"blue\"},{\"Key\":\"size\",\"Value\":\"small\"}]}]}";
//var json = "[{\"ID\":\"1243\",\"Dictionary\":[{\"Key\":\"color\", \"Value\":\"red\"},{\"Key\":\"size\",\"Value\":\"large\"}]},{\"ID\":\"1243\",\"Dictionary\":[{\"Key\":\"color\", \"Value\":\"blue\"},{\"Key\":\"size\",\"Value\":\"small\"}]}]";
List<MyObject> myObjects = new JavaScriptSerializer().Deserialize<List<MyObject>>(json);
}
}
[DataContract]
public class MyObject
{
[DataMember]
public string ID { get; set; }
[DataMember]
public Dictionary<string, string> Dictionary { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
第一个json字符串将整个事物封装在一个对象中 - 如果我运行它,它运行正常,但myObjects只是一个空列表.如果我运行第二个字符串(没有它被包装)我得到以下错误:
键入'System.Collections.Generic.Dictionary`2 [[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.String,mscorlib,Version = 4.0.0.0,Culture = neutral ,对于数组的反序列化,不支持PublicKeyToken = b77a5c561934e089]]'.
从我做过的研究看来,这应该是非常直接的 - 任何人都有任何关于我应该使用哪种JSON格式以及出了什么问题的想法?如果我只做一个对象而不是一个对象数组,JSON反序列化就好了.
我正在编写代码以从各种服务器下载电子邮件,其中一些不在我的控制范围内。我希望能够在代码级别过滤掉垃圾邮件,因为我不能总是依赖服务器来有效地执行此操作。有哪些 Java 资源可以帮助解决这个问题?为了最大限度地减少我需要通过的垃圾邮件数量,有什么好的方法可以采取?
目前我只是使用 JavaMail API。
我正在使用eBay的LMS(大型商户服务),并一直遇到错误:
org.xml.sax.SAXException:SimpleDeserializer在尝试反序列化时遇到了一个不期望的子元素.
经过大量的反复试验后,我追查了问题.事实证明这是有效的:
<?xml version="1.0" encoding="UTF-8"?>
<BulkDataExchangeRequests xmlns="urn:ebay:apis:eBLBaseComponents">
<Header>
<Version>583</Version>
<SiteID>0</SiteID>
</Header>
<AddFixedPriceItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
Run Code Online (Sandbox Code Playgroud)
虽然这(我发送的内容)不是:
<?xml version="1.0" encoding="UTF-8"?>
<BulkDataExchangeRequests xmlns="urn:ebay:apis:eBLBaseComponents">
<Header>
<Version>583</Version>
<SiteID>0</SiteID>
</Header>
<AddFixedPriceItemRequest>
Run Code Online (Sandbox Code Playgroud)
区别在于xml命名空间属性AddFixedPriceItemRequest.我的所有XML目前都是通过JAXB进行编组的,我不确定将第二个xmlns属性添加到文件中的其他元素的最佳方法是什么.
这就是问题所在.如何在JAXB中将xmlns属性添加到另一个元素?
更新:
package ebay.apis.eblbasecomponents;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AddFixedPriceItemRequestType", propOrder = {
"item"
})
public class AddFixedPriceItemRequestType
extends AbstractRequestType
{
@XmlElement(name = "Item")
protected ItemType item;
public ItemType getItem() {
return item;
}
public void setItem(ItemType value) {
this.item = value;
}
} …Run Code Online (Sandbox Code Playgroud) Windows Azure公布三种类型的IO性能级别:
因此,如果我有一个IO绑定应用程序(而不是CPU或内存绑定)并且需要至少6个CPU来处理我的工作负载 - 我会在12-15个额外小型,6个小型或3个介质中获得更好的IO性能吗?
我确定这根据应用程序而有所不同 - 是否有一种简单的方法可以测试它?是否有任何数字可以更好地了解您在迁移到大型实例角色时获得的IO性能提升程度?
似乎较小角色的IO性能可能等同于较大角色的IO性能,它们只是在整体负载变得太大时首先受到限制.听起来不错吗?
我在ASP.NET Web应用程序中使用Quartz.NET.我将以下代码放在按钮单击处理程序中以确保它执行(用于测试目的):
Quartz.ISchedulerFactory factory = new Quartz.Impl.StdSchedulerFactory();
Quartz.IScheduler scheduler = factory.GetScheduler();
Quartz.JobDetail job = new Quartz.JobDetail("job", null, typeof(BackupJob));
Quartz.Trigger trigger = Quartz.TriggerUtils.MakeDailyTrigger(8, 30); // i edit this each time before compilation (for testing purposes)
trigger.StartTimeUtc = Quartz.TriggerUtils.GetEvenSecondDate(DateTime.UtcNow);
trigger.Name = "trigger";
scheduler.ScheduleJob(job, trigger);
scheduler.Start();
Run Code Online (Sandbox Code Playgroud)
这是"BackupJob":
public class BackupJob : IJob
{
public BackupJob()
{
}
public void Execute(JobExecutionContext context)
{
NSG.BackupJobStart();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题:为什么"BackupJobStart()"没有解雇?我之前使用过类似的代码,但它运行良好.
编辑:@Andy White,我想在Global.asax的Application_Start中使用它.这不起作用,这就是为什么我把它移动到一个按钮点击处理程序来缩小问题的范围.
这是我正在尝试做的事情:我想要2个日志文件:第一个记录INFO级别以及应用程序的所有部分,但也记录DEBUG和一些软件包.第二个只在所有包中记录ERROR和up.我敢肯定这可能是微不足道的,但我无法弄明白.这是我目前使用的配置文件:
log4j.rootLogger=INFO,console,R
#console appender
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %t %-5p %c{2} - %m%n
#file appender
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.File = log/log.txt
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern = [%d{ISO8601}]%5p%6.6r[%t]%x(%F:%L) - %m%n
#Specific log levels
log4j.category.com.mypackage1=DEBUG
log4j.category.com.mypackage2=DEBUG
Run Code Online (Sandbox Code Playgroud)
显然,这没有错误日志部分.我的基本想法是添加另一个appender并将其日志级别设置为ERROR,但类别似乎会覆盖它以及它们的信息,这不是我想要的.它们存在的原因是因为其他软件包转储了很多我们在设置调试时不需要的信息,这就是我们如何解决它.我想可能有一个更好的整体方法,但这是我的第一个log4j配置文件.
更新:一位同事建议使用2个记录器,如kdgregory在他的评论中链接的帖子中所述(不同的log4j布局用于调试和错误?).那里的人似乎认为这是一个坏主意,但没有人解释过为什么.它似乎有点hacky但它做我们需要的.不使用该方法的主要原因是什么(除了必须维护2个不同的记录器)?
我想在对象上创建一个整数自定义字段.我看到我可以创建一个"数字"的自定义字段,但似乎返回一个十进制类型.大多数情况下这很烦人,因为我计划将该字段用作整数,并且我在代码中使用它时,我必须将其转换为整数.其他任何字段类型似乎都不是很接近 - 唯一似乎拥有数字类型的其他字段类型是Currency.
我已将小数字段后面的数字调整为(3,0) - 小数点前三位数,小数点后面的零数字.它仍然返回小数.
甚至可以创建一个整数?每当我需要它时,它是否被视为"最佳实践"?
azure ×2
java ×2
xml ×2
.net ×1
apex-code ×1
asp.net ×1
automation ×1
autoscaling ×1
c# ×1
database ×1
ebay-api ×1
ebay-lms ×1
elasticity ×1
email ×1
email-spam ×1
io ×1
jaxb ×1
json ×1
log4j ×1
performance ×1
quartz.net ×1
salesforce ×1
scheduling ×1
sql-server ×1
utilization ×1
xpath ×1