Попытка сделать веб-сервис с клиентом javafx, который вычисляет ссуды. Не получается - PullRequest
0 голосов
/ 11 апреля 2020

Итак, я впервые учусь и занимаюсь веб-сервисами. Что с текущими глобальными событиями и моим преподавателем, который почти никогда не реагирует на мои попытки связаться, я (и мои одноклассники) в значительной степени сами по себе. Наше текущее задание заключается в создании веб-службы, которая имеет два удаленных метода для расчета ежемесячных и годовых платежей по кредиту. Затем создается клиент, чтобы предложить пользователю фактически ввести числа, которые будут использоваться. Я со своим учебником работал над этим заданием и до сих пор занимаюсь этим. Проблема в том, что мой учебник использует более старые версии 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));
}

    }
...