Итак, я впервые учусь и занимаюсь веб-сервисами. Что с текущими глобальными событиями и моим преподавателем, который почти никогда не реагирует на мои попытки связаться, я (и мои одноклассники) в значительной степени сами по себе. Наше текущее задание заключается в создании веб-службы, которая имеет два удаленных метода для расчета ежемесячных и годовых платежей по кредиту. Затем создается клиент, чтобы предложить пользователю фактически ввести числа, которые будут использоваться. Я со своим учебником работал над этим заданием и до сих пор занимаюсь этим. Проблема в том, что мой учебник использует более старые версии NetBeans, а я использую новейшую версию (11.1). Поэтому я уже борюсь с различиями версий, а также пытаюсь понять и завершить sh это назначение.
В настоящее время, когда я сам запускаю реальный веб-сервис, он не дает мне возможность индивидуально вставить фактические числа для вычисления, и если я что-то введу, он просто выдаст мне этот номер с ошибкой.
Клиент при запуске ничего не отображает. Даже окна. Что я здесь не так делаю и как я могу это исправить?
Вот веб-сервис:
package chapter39;
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService(serviceName = "ComputeLoan")
public class ComputeLoan {
int loanAmount;
int numOfYears;
int annInterestRate;
int mPayment;
int aPayment;
@WebMethod(operationName = "MonthlyPayment")
public int monthlyPayment (String txt) {
mPayment = loanAmount * (annInterestRate / numOfYears);
System.out.println("Your loan amount is: " + loanAmount);
System.out.println("Your number of years is: " + numOfYears);
System.out.println("Your your interest rate is: " + annInterestRate);
System.out.println("Your monthly payment is: " + mPayment);
return mPayment;
}
@WebMethod(operationName = "AnnualPayment")
public int annualPayment (String txt) {
aPayment = (loanAmount * annInterestRate) / numOfYears;
System.out.println("Your loan amount is: " + loanAmount);
System.out.println("Your number of years is: " + numOfYears);
System.out.println("Your your interest rate is: " + annInterestRate);
System.out.println("Your monthly payment is: " + aPayment);
return aPayment;
А вот клиент:
package chapter39;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import myWebservice.ComputeLoan;
import myWebservice.ComputeLoan_Service;
public class ComputeLoanApp extends Application {
private ComputeLoan_Service service = new ComputeLoan_Service();
private ComputeLoan proxy = service.getComputeLoanPort();
private Button btCalculate = new Button("Calculate");
private TextField tfLoan = new TextField();
private TextField tfInterest = new TextField();
private TextField tfYear = new TextField();
private TextField tfMonthly = new TextField();
private TextField tfAnnual = new TextField();
@Override
public void start(Stage primaryStage) {
GridPane gridPane = new GridPane();
gridPane.setHgap(5);
gridPane.add(new Label("Loan Amount"), 0, 0);
gridPane.add(new Label("Interest Rate"), 0, 1);
gridPane.add(new Label("Number of Years"), 0, 2);
gridPane.add(new Label("Monthly Payment"), 0, 3);
gridPane.add(new Label("Annual Payment"), 0, 4);
gridPane.add(new Label("Calculate"), 0, 5);
gridPane.add(tfLoan, 1, 0);
gridPane.add(tfInterest, 1, 1);
gridPane.add(tfYear, 1, 2);
gridPane.add(tfMonthly, 1, 3);
gridPane.add(tfAnnual, 1, 4);
gridPane.add(btCalculate, 1, 5);
// Create a scene and place the pane in the stage
Scene scene = new Scene(gridPane, 250, 250);
primaryStage.setTitle("ComputeLoanApp"); // Set the stage title
primaryStage.setScene(scene); // Place the scene in the stage
primaryStage.show(); // Display the stage
btCalculate.setOnAction(e -> getPayment());
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
}
public void getPayment() {
int mLoan = proxy.monthlyPayment(tfLoan.getText().trim());
int mInterest = proxy.monthlyPayment(tfInterest.getText().trim());
int mYear = proxy.monthlyPayment(tfYear.getText().trim());
int aLoan = proxy.annualPayment(tfLoan.getText().trim());
int aInterest = proxy.annualPayment(tfInterest.getText().trim());
int aYear = proxy.annualPayment(tfYear.getText().trim());
int mPayment = proxy.monthlyPayment(tfMonthly.getText().trim());
int aPayment = proxy.annualPayment(tfMonthly.getText().trim());
tfMonthly.setText(Integer.toString(mPayment));
tfAnnual.setText(Integer.toString(aPayment));
}
}