EDIT: проблема была в два раза, первый словарь должен быть статическим, а также я использовал .contains(), где я должен был использовать .containsKey()Веб-служба Java, похоже, не сохраняет переменную?
Я пытаюсь сделать простой java-клиент и сервер установить, это то, что я есть, и я не могу найти ничего плохого с тем, как я сделал это, но всякий раз, когда я запускаю код я получаю результат:
Result = Added
Result = This word is not in the dictionary, please use the add function.
который говорит мне, что сервер не сохраняет изменения, сделанные на карте, когда я добавляю слово, есть ли что-то действительно простое, я здесь отсутствует?
Я могу добавить больше информации, если потребуется.
Это мой код клиента:
public class Client {
@WebServiceRef(wsdlLocation =
"http://localhost:8080/P1Server/ServerService?wsdl")
public static void main(String[] args) {
try {
package1.ServerService service = new package1.ServerService();
package1.Server port = service.getServerPort();
String result = port.addWord("Test", "This is a test.");
System.out.println("Result = " + result);
result = port.getDefiniton("Test");
System.out.println("Result = " + result);
}catch(Exception ex)
{
System.out.println("Gone Wrong");
}
Это мой соответствующий код сервера:
@WebService
public class Server {
private **static**ConcurrentHashMap<String,String> dictionary;
public Server() {
this.dictionary = new ConcurrentHashMap<>();
}
@WebMethod
public String addWord(String word, String definition){
if(dictionary.contains(word.toLowerCase())){
return "This word is already in the dictionary, "
+ "please use the update function.";
}else{
dictionary.put(word.toLowerCase(), definition);
return "Added";
}
}
@WebMethod
public String getDefiniton(String word){
if(dictionary.contains(word.toLowerCase())){
return dictionary.get(word);
}else{
return "This word is not in the dictionary, "
+ "please use the add function.";
}
}
Действительно? Любая причина для этого, как вы предлагаете? – Don
Проверьте его логику. Он пытается это сделать. – jitsonfire
Это работало, как я использовал. содержит() нет .containsKey() – user4301818