1
0
-1

I have built reasonably complex Joget applications and have worked with the standard Joget APIs successfully for 6 years or so. I was pleased to see and investigate the API Builder because my current project needs these functions. My current Joget environment is the 10 user license on a Windows 2019 Server as provided in the AWS marketplace. Despite hours of work on all the variables I could think of, I have never gotten a successful connection or response using the API Builder. I have adjusted the whitelists, used various authentication schemes, tried the internal option, substituted numeric IP and FQDM for localhost, and on and on but none have achieved a valid response. Browser access to the Joget instance remotely works fine as do the standard Joget APIs and the JSON Tool. But, the best I can achieve for all of my variations using the custom API's are 400 Bad Request. How can I diagnose and correct this issue? Thanks in advance, Bill

    CommentAdd your comment...

    2 answers

    1.  
      1
      0
      -1

      Drag and drop the "Manage API Key" menu into your app's Userview Builder, run the userview and create the record as shown below, then copy the API Key in the datalist into your Postman/API calling program. Each app will have their own "Manage API Key" menu.

      1. William Vasu

        Thanks Matthew for the quick reply. However I have tried your last suggestion and still cannot connect my API Builder created API with Joget. The best I can get with a remote instance of Postman, or one right on the Windows 2019 Server on which Joget is installed, is shown below (domain obscured):

        I have Joget Enterprise installed on the Windows 2019 Server as provided through AWS Marketplace. I have created the API key, as you suggest, in the Userview of my App. I have verified the API Ids over and over. I have set the authentication as Basic and verified the Authorization by verifying with the one generated by Postman. But never any different result. 

        Might API Builder APIs be disabled in the AWS Enterprise version? I have used the standard JSON API call often in this application and there have been no issues. Also I have checked the log request box but cannot find any log entries when I try the calls from Postman. Thanks in advance.

        I also see this set of errors in the tomcat log:

        23-Sep-2022 05:37:01.470 INFO [http-nio-8080-exec-182] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
         Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
            java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x000xe50x010x000x000xe10x030x030xd9xu0xa30x810xfa&0x14p}0xf50xd40x940x806l0x920xab0x1dFh0x8c90xa98t0x1f0x89"0xebFT ]. HTTP method names must be tokens
                at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:434)
                at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:513)
                at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
                at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:882)
                at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1647)
                at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
                at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
                at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
                at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                at java.base/java.lang.Thread.run(Unknown Source)
        23-Sep-2022 05:38:28.293 INFO [http-nio-8080-exec-191] org.apache.tomcat.util.http.Parameters.processParameters Invalid chunk starting at byte [77] and ending at byte [78] with a value of [=] ignored
         Note: further occurrences of Parameter errors will be logged at DEBUG level.



      2. Anders

        Googling the error message gives the result https://stackoverflow.com/questions/42218237/tomcat-java-lang-illegalargumentexception-invalid-character-found-in-method-na which appears to be related to a HTTPS to HTTP problem. You might want to check your web or application server for any misconfiguration in that area.

      CommentAdd your comment...
    2.  
      1
      0
      -1

      The API Builder needs many parameters correctly set, an example:

      1. The process must exist (example for "/api/process/process1/startProcessByUser/user").
      2. The process id must be correct in the POST command
      3. The process "Map Participants to Users > Process Start White List" permission needs to be correctly set.
      4. The "Manage API key > Domain Whitelist and IP Address Whitelist" needs a wildcard asterisk (*) to accept any IP for testing
      5. The API key and API id must be the same as defined in the app.
      6. Ensure firewalls/antivirus did not block the API calls.
      7. You can only use the Joget DX 7 Enterprise/Pro version on API Builder.

      Test using the latest Joget DX Enterprise version 7.0.32 and apibuilder_plugins-7.0.0.jar.

      1. William Vasu

        To the best of my knowledge my instance meets all of the above requirement for the API shown below. Does the API key come from one created in the Userview Menu of the app? Where is the key defined in the app. I see where the API Id is provided when I create it.

      2. William Vasu

        I am attempting to use this one:

      CommentAdd your comment...