Разделите Человека на подклассы дважды, однажды для получателя и однажды для отправителя, и только поместите XmlRootElement на эти подклассы (оставляющий суперкласс, Person
, без XmlRootElement). Обратите внимание, что отправитель и получатель оба совместно используют те же базовые классы JAXB.
@XmlRootElement(name="person")
public class ReceiverPerson extends Person {
// receiver specific code
}
@XmlRootElement(name="person")
public class SenderPerson extends Person {
// sender specific code (if any)
}
// note: no @XmlRootElement here
public class Person {
// data model + jaxb annotations here
}
[протестированный и подтвержденный для работы с JAXB]. Это обходит проблему, которую Вы отмечаете, когда несколько классов в иерархии наследования имеют аннотацию XmlRootElement.
Это - возможно также более опрятное и больше подхода OO, потому что он выделяет модель общих данных, таким образом, это не "обходное решение" вообще.
Вам необходимо установить Pageant и добавить в него ключ.
Также дважды проверьте, что ваша переменная среды GIT_SSH настроена на использование plink
Есть ли что-нибудь (т.е. хотя бы одна фиксация) в удаленном репозитории?
git говорит: «предупреждение: вы, кажется, клонировали пустой репозиторий»
и когда хотите чтобы вставить пустое удаленное репо, вы должны использовать:
git push URL master
Have you tried connecting from Git-Bash with ssh user@host:port? Does it connect directly or ask for a password?
Port is only required if you are using a non-standard port for ssh otherwise it will default to 22. It is one thing from Putty but make sure you can connect from git bash because it will generally have its own key store in a .ssh directory off of your user directory. If you cannot get that to work from Git-Bash you need to fix the key or debug where the problem is, try specifying the key by using
ssh -i keyfile user@host:port
if that doesn't work or prompts you for a password on the remote machine it means the key exchange is not working properly. So you need to go through checking the keys are setup properly with regards to the Git-Bash environment. In particular make sure that you have exported the RSA key and are not just using the ppk key with Git-Bash. I do not believe that is supported. I don't use Tortoise-Git so I can't help with that, but I do use Git Bash regularly.
Вот немного контрольного списка:
У вас есть ключи ssh в нужном месте для GIT?
Предложения:
1: Поскольку вы можете подключиться с помощью putty, похоже, что ssh настроен нормально.
2: Используйте putty и подключитесь к серверу. Введите git --version
Получите ли вы разумный ответ? Если нет, вам нужно будет установить его на сервере.
3: Попробуйте создать новый репозиторий на сервере. Предполагая, что его сервер в стиле a * nix использует шпатлевку, подключается к серверу и создает новый репозиторий, используя следующие команды, при условии, что у вас есть каталог / home / source_code. Строка эха просто создает файл с небольшим количеством текста, так что нам есть с чего начать.
cd /home/source_code
mkdir test_repo
cd /home/source_code/test_repo
echo "first file" > t.txt
git init
git add .
git commit -m "Initial Import"
Итак, теперь у нас есть репозиторий с одним файлом t.txt в нем. Как правило, вы никогда не должны отправлять данные в репозиторий, содержащий изменения в рабочей копии. Цель наличия репозитория на сервере состоит в том, чтобы люди могли постоянно заходить в него. Мы делаем «голый» клон, который представляет собой только базу данных git, таким образом, нет возможности изменения рабочей копии. Именно этот «голый» клон мы будем использовать в качестве центрального репозитория git.
cd /home/source_code
git clone --bare test_repo/ test_repo.git
Теперь вы можете избавиться от созданного нами временного репозитория.
cd /home/source_code/
rm -rf test_repo
На локальном компьютере попробуйте клонировать еще раз.
git clone ssh://user@host.com:port/home/source_code/test_repo.git
4: Разрешения: Это не должно вызывать проблем с клонированием, получением или извлечением, если вы не выбрали место для репозитория, у которого нет доступа для чтения. Если вы получаете ошибку Permission denied при отправке назад, обратитесь к Исправление разрешений
5: Настройка открытого / закрытого ключа для GIT:
chmod 700 .ssh
chmod 600 authorized_keys
ssh-keygen -t dsa
cat id_dsa.pub >>. ssh / authorized_keys
PubkeyAuthentication yes
sudo /etc/init.d/ssh restart
id_dsa
и id_dsa.pub
с сервера на ваш локальный жесткий диск (используйте winscp, sftp или какой-либо другой подобный инструмент) c: \ users \ userName \ .ssh каталог (это для перспективы, местоположение будет немного отличается для других версий Windows) Как git, так и git черепахи должны быть настроены на Работа. Попробуйте снова клонировать на своем локальном компьютере.
git clone ssh://user@host.com:port/home/source_code/test_repo.git
Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....
d / ssh restart id_dsa
и id_dsa.pub
с сервера на локальный жесткий диск (используйте winscp или sftp или какой-либо другой подобный инструмент) c: \ users \ userName \ Каталог .ssh (это для перспективы, расположение будет немного другим для других версий Windows) И командная строка git, и черепаха git должны быть настроены для работы. Попробуйте снова клонировать на своем локальном компьютере.
git clone ssh://user@host.com:port/home/source_code/test_repo.git
Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....
d / ssh restart id_dsa
и id_dsa.pub
с сервера на локальный жесткий диск (используйте winscp или sftp или какой-либо другой подобный инструмент) c: \ users \ userName \ Каталог .ssh (это для перспективы, расположение будет немного другим для других версий Windows) И командная строка git, и tortoise git должны быть настроены для работы. Попробуйте снова клонировать на своем локальном компьютере.
git clone ssh://user@host.com:port/home/source_code/test_repo.git
Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....
ssh (это для перспективы, расположение будет немного другим для других версий Windows)Оба командная строка git и tortoise git должны быть настроены для работы. Попробуйте снова клонировать на своем локальном компьютере.
git clone ssh://user@host.com:port/home/source_code/test_repo.git
Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....
ssh (это для перспективы, расположение будет немного другим для других версий Windows)Оба командная строка git и tortoise git должны быть настроены для работы. Попробуйте снова клонировать на своем локальном компьютере.
git clone ssh://user@host.com:port/home/source_code/test_repo.git
Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....