我认为这可能是一个非常简单的问题,但我还没有弄清楚.如果我有一个像这样的二维数组:
int[,] array = new int[2,3] { {1, 2, 3}, {4, 5, 6} };
Run Code Online (Sandbox Code Playgroud)
使用嵌套的foreach语句迭代数组的每个维度的最佳方法是什么?
我有一个SOAP Web服务,我试图在应用程序内部调用.我使用cxf-codegen-plugin(3.1.10)从WSDL生成源代码.
使用生成的客户端,如果我在应用程序中调用Web服务,它可以很好地工作.但是,我还在应用程序中使用另一个JAXB实例来导致问题.
例如,以下工作很好:
OutboundServicePortType service = new OutboundService().getOutboundServicePort();
service.sendMessage(message);
Run Code Online (Sandbox Code Playgroud)
但是,在之前初始化新的JAXB实例会导致getOutboundServicePort()
调用失败:
JAXBContext.newInstance(SendMessageRequest.class);
OutboundServicePortType service = new OutboundService().getOutboundServicePort();
service.sendMessage(message);
Run Code Online (Sandbox Code Playgroud)
使用以下堆栈跟踪:
Caused by: java.lang.ClassCastException: outbound.model.standard.StandardOutboundMessage$JaxbAccessorF_messageUUId cannot be cast to com.sun.xml.internal.bind.v2.runtime.reflect.Accessor
at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.instanciate(OptimizedAccessorFactory.java:190)
at com.sun.xml.internal.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:179)
at com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:271)
at com.sun.xml.internal.bind.v2.runtime.property.SingleElementLeafProperty.<init>(SingleElementLeafProperty.java:77)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:113)
at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:166)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:488)
at com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:153)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:488)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:305)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:124)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1123)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:147)
at com.sun.xml.internal.bind.api.JAXBRIContext.newInstance(JAXBRIContext.java:152)
at com.sun.xml.internal.bind.api.JAXBRIContext.newInstance(JAXBRIContext.java:96)
at com.sun.xml.internal.ws.developer.JAXBContextFactory$1.createJAXBContext(JAXBContextFactory.java:98)
at com.sun.xml.internal.ws.db.glassfish.JAXBRIContextFactory.newContext(JAXBRIContextFactory.java:79)
... 25 more
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过的事情:
有没有办法固有/手动记录ASP站点中访问特定文件的次数.例如,我在服务器上有一些.mp3文件,我想知道每个文件访问过多少次.
追踪这个的最佳方法是什么?
Java中是否有一个死简单的本机方法用密钥加密/解密字符串?我真的不关心什么类型的加密(AES,DES等),我只关心它受键的约束而不易破解.
理想情况下,我希望它是一个像这样的单行解决方案:
String encryptedString = NativeEncryptionClass.encrypt("this is the data", "key123");
Run Code Online (Sandbox Code Playgroud)
谢谢
在执行以下操作org.hibernate.LazyInitializationException
时,当我尝试访问延迟加载的异常时遇到错误:
@Transactional
public void displayAddresses()
{
Person person = getPersonByID(1234);
List<Address> addresses = person.getAddresses(); // Exception Thrown Here
for(Address address : addresses)
System.out.println(address.getFullAddress());
}
Run Code Online (Sandbox Code Playgroud)
我的实体看起来像这样:
@Entity
@Table("PERSON_TBL")
public class Person
{
...
@OneToMany(cascade=CascadeType.ALL, targetEntity=Address.class, mappedBy="person")
private List<Address> addresses;
...
}
@Entity
@Table("ADDRESS_TBL")
public class Address
{
...
@ManyToOne(targetEntity=Person.class)
@JoinColumn(name="PERSON_ID", referencedColumnName="PERSON_ID")
Person person;
...
}
Run Code Online (Sandbox Code Playgroud)
我的印象是,通过在我的displayAddresses()
方法中使用@Transactional批注,它将使会话保持活动状态,直到该方法完成为止,从而使我可以访问延迟加载的Address集合。
我想念什么吗?
编辑
按照Tomasz的建议:在我的displayAddresses()
方法中,状态TransactionSynchronizationManager.isActualTransactionActive(),
变为false
。
这确实可以缩小问题的范围,但是为什么此时我的交易不能处于活动状态?
我有一个 *ngFor 循环遍历我所有的朋友。在 for I 中有一个输入框,用于存储朋友的姓名。我想在单击按钮时存储朋友的更新名称的值,但这并没有按预期工作:
@Component({
selector: 'my-app',
template: `
<div *ngFor="let friend of friends">
<input type="text" [value]="friend.name">
<button (click)="save(friend)" type="submit">save</button>
</div>`,
providers: []
})
export class App {
friends: Friend[] = new Array(new Friend("Alice"), new Friend("Bob"));
save(friend: Friend) {
console.log(friend.name);
}
}
export class Friend {
constructor(public name: string) {}
}
Run Code Online (Sandbox Code Playgroud)
期望是使用包含名称的新值的朋友对象调用 save 方法。但它只是传递旧名称。
我觉得我在 Angular2 的工作方式中缺少一些基本的东西。
Plunkr:http : //plnkr.co/edit/blYzEW0JufOcPwIwzoWQ?p=preview
我的项目中有一个类,它存储了一个List <>元素.我试图弄清楚是否应该允许用户直接添加到该列表(例如,调用本机添加/删除方法)或通过声明List私有来锁定它,并且只允许我选择实际更改的一些方法列表.
它是一个框架,所以我试图尽可能地设计它,但我也希望尽可能保持简单和无错误.
在这种情况下,最佳做法是什么?
谢谢,泰勒
有谁知道刷新页面后是否有办法保持对弹出窗口的引用,以便您可以继续访问它?
我最初的想法是用 JSON 字符串化引用变量,将其存储在 cookie 中,并在页面刷新后 eval() 它,但我还没有机会对其进行测试。
我是否在正确的轨道上,或者这甚至可能吗?
我有一个使用带有datetimeoffset列的SQLServer数据库的应用程序。最好是,我想使用ZonedDateTime作为我的JPA实体对象类型,如下所示:
@Column(name = "CreateTimestamp", nullable = false)
ZonedDateTime createTimestamp;
Run Code Online (Sandbox Code Playgroud)
但是,时区未正确保存。无论我在ZonedDateTime中将ZoneId设置为什么,该值将始终位于数据库的GMT中。
查看Microsoft的JDBC映射图,推荐使用的类是microsoft.sql.DateTimeOffset,这不是我想要的。
我已经探索过使用@Converter在两者之间进行映射,但是必须提供这样的特殊知识似乎是对我做错了事的一个危险信号-尤其是因为我需要使用它在H2集成测试中进行工作。
以供应商不可知的方式使用datetimeoffset和ZonedDateTime的最佳方法是什么?
c# ×4
java ×3
.net ×2
angular ×1
asp.net ×1
cxf ×1
encryption ×1
foreach ×1
function ×1
hibernate ×1
javascript ×1
jaxb ×1
jpa ×1
json ×1
list ×1
nested-loops ×1
spring ×1
sql-server ×1