Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Различия?
SOAP более мощен, и очень предпочтен поставщиками программного инструмента (.NET MSFT, Версия для предприятий Java, такие вещи).
SOAP был в течение долгого времени (2001-2007ish) рассматриваемый как предпочтительный протокол для SOA. xml-rpc не так. REST является новым любимым SOA, хотя это не протокол.
SOAP является более подробным, но более способным.
SOAP не поддерживается в части более старого материала. Например, никакой SOAP не освобождает для классического ASP (что я мог найти).
SOAP не хорошо поддерживается в Python. XML-RPC имеет большую поддержку в Python в стандартной библиотеке.
SOAP поддерживает передачу уровня документа, тогда как xml-rpc больше о передаче значений, хотя это может передать структуры, такие как структуры, списки, и т.д.
, xm-rpc действительно о межпрограммной передаче агностика языка. Это, прежде всего, пробегается через http/https. Сообщения SOAP могут пробежаться через электронную почту также.
xml-rpc является большим количеством unixy. Это позволяет Вам сделать вещи просто, и когда Вы знаете то, что Вы делаете, это очень быстро для развертывания качественных веб-сервисов, даже когда с помощью терминальных текстовых редакторов. При выполнении SOAP тем путем является зоопарк; Вам действительно нужен хороший IDE для создания его выполнимым.
Знание SOAP, тем не менее, будет выглядеть намного лучше на Вашем резюме/CV, если Вы будете соперничать за задание IT Fortune 500.
xml-rpc имеет некоторые проблемы с наборами символов неASCII.
XML-RPC не поддерживает названные параметры. Они должны быть в правильном порядке. Не уверенный в SOAP, но думают так.
Только для добавления к другим ответам я поощрил бы Вас смотреть на фактические текстовые представления SOAP и XML-вызовов-RPC, возможно, путем получения один с Эфирным. Целое, "XML-RPC является более простым" аргументом, не имеет большого количества смысла, пока Вы не видите, как невероятно подробный вызов SOAP. Многие довольно популярные веб-сайты там уклоняются от SOAP как свой API из-за просто суммы пропускной способности, которую это использовало бы, если бы люди начали использовать его экстенсивно.
У Kate Rhodes есть замечательное эссе по различиям в http://weblog.masukomi.org/2006/11/21/xml-rpc-vs-soap