Фактическая проблема заключается в том, что вы сравниваете два long[]
, а Enumerable.SequenceEquals
будет использовать ObjectEqualityComparer<Int64[]>
(вы можете видеть, что, исследуя EqualityComparer<long[]>.Default
, который является тем, что внутренне используется Enumerable.SequenceEquals
), который будет сравнивать ссылки этих двух массивов, а не фактические значения , хранящиеся внутри массива, которые, очевидно, не совпадают.
Чтобы обойти это, вы могли бы напишите EqualityComparer<long[]>
:
static void Main()
{
var expected = new List<long[]>
{ new[] { Convert.ToInt64(1), Convert.ToInt64(999999) } };
var actual = DoSomething();
if (!actual.SequenceEqual(expected, new LongArrayComparer()))
throw new Exception();
}
public class LongArrayComparer : EqualityComparer<long[]>
{
public override bool Equals(long[] first, long[] second)
{
return first.SequenceEqual(second);
}
// GetHashCode implementation in the courtesy of @JonSkeet
// from http://stackoverflow.com/questions/7244699/gethashcode-on-byte-array
public override int GetHashCode(long[] arr)
{
unchecked
{
if (array == null)
{
return 0;
}
int hash = 17;
foreach (long element in arr)
{
hash = hash * 31 + element.GetHashCode();
}
return hash;
}
}
}
Можно разархивировать .war содержание в "myapp.war" папке, которую JBoss рассмотрит развертываемым приложением так же, как если бы это была заархивированная война.
Еще лучше, большинство IDE (Eclipse наверняка, но я предполагаю другие IDE, такие как Netbeans) позволяет Вам развертывать взорванный пакет вместо заархивированного .war, позволяя Вам изменить просто единственные файлы, которые Вы изменяете вместо целого .war пакета
это делает это в tmp папке......
, но можно взорваться, файл в развертывании directoy просто называют это "app.war"