Diagnose and resolve two common Enterprise Distributed Application Service (EDAS) issues: HTTP page access failures and Remote Procedure Call (RPC) service call failures.
Symptoms
One or both of the following issues occur:
EDAS application pages are not accessible over HTTP.
RPC services between applications fail to respond.
HTTP page access failure
Possible causes
Network connectivity issues between the client and the server host.
Incorrect HTTP path configuration (context path or port mismatch).
Application errors logged in Tomcat.
Java Virtual Machine (JVM) performance issues (thread deadlocks, memory exhaustion, or class loading failures).
Step 1: Verify network connectivity
Run curl or ping against the page URL from your server to confirm the URL is reachable:
curl -I http://<your-app-url>:<port>/<context-path>ping <your-server-host>Expected results:
Successful
curlresponse: An HTTP status code such as200 OKor302 Foundconfirms the server is reachable.HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8Failed
curlresponse: AConnection refusedorConnection timed outmessage indicates a network issue.curl: (7) Failed to connect to <your-app-url> port 8080: Connection refused
What to do next:
If the URL is unreachable, check the network connection from the client to the server host. Verify security group rules, firewall settings, and routing configurations. Fix network issues before proceeding.
If the URL is reachable but the application still does not respond correctly, go to Step 2.
Step 2: Check Tomcat logs
Review the log files under the Tomcat installation directory /logs for errors:
ls <tomcat-install-dir>/logs/Check the following log files:
| Log file | Content |
|---|---|
catalina.out | Tomcat server startup and runtime messages |
localhost.log | Application-level errors and exceptions |
| Application-specific logs | Custom log output from your application |
What to do next: Resolve all recorded errors. Common issues include missing dependencies, failed servlet initialization, and database connection failures. After fixing the errors, restart Tomcat and verify access.
Step 3: Verify the HTTP path configuration
Confirm that the port number and context path in your page URL match the values in your application's HTTP configuration:
| Setting | Where to check | Example |
|---|---|---|
| Port | Tomcat server.xml or EDAS application config | 8080 |
| Context path | Application deployment configuration | /myapp |
Make sure the port in the URL (for example, http://host:8080/myapp) matches the port your application listens on. A mismatch between the configured port and the URL port is a common cause of access failures.
Step 4: Inspect the JVM
If the application is running but unresponsive, check the JVM state.
Get the Java process ID:
ps -ef |grep javaThe output lists running Java processes. Identify your EDAS application process and note its PID (second column):
admin 2083 1 0 09:00 ? 00:05:32 /usr/bin/java -jar /home/admin/app.jarRun the following JVM diagnostic commands:
# Generate a thread dump to check for deadlocks or blocked threads sudo jstack -F <process-id> # Monitor class loading statistics sudo jstat -class <process-id> <interval> <count> # Inspect heap memory usage jmap -heap <process-id>Replace the following placeholders:
Placeholder Description Example <process-id>Java process ID from ps -ef |grep java2083<interval>Sampling interval in seconds or milliseconds 1000<count>Number of samples to collect. Omit for continuous output. 10
RPC service call failure
Possible causes
The service provider and service consumer are on different accounts or in disconnected networks.
A firewall or security group rule blocks the server port.
The service has errors that prevent it from registering in the service list.
Network issues between the server and the service registry.
Missing permissions for the service.
Service call timeouts.
Step 1: Verify account and network connectivity
Check the following:
Both applications -- the one initiating the RPC call and the one providing the service -- belong to the same Alibaba Cloud account.
The two applications can reach each other over the network. Test with
pingortelnetbetween the hosts:ping <service-provider-host>Expected result: Successful ping responses confirm network connectivity. If packets are lost or the host is unreachable, check the VPC configuration, routing tables, and network ACLs.
Step 2: Check for blocked ports
Verify that no firewall or security group rule blocks the port your service listens on:
telnet <service-provider-host> <service-port>Expected results:
Successful connection: A
Connected tomessage confirms the port is accessible.Trying <service-provider-host>... Connected to <service-provider-host>.Failed connection: A
Connection refusedorConnection timed outmessage indicates the port is blocked.Trying <service-provider-host>... telnet: Unable to connect to remote host: Connection refused
What to do next: If the connection fails, review your security group and host-level firewall settings (iptables or firewalld). Add an inbound rule to allow traffic on the service port.
Step 3: Check Tomcat application logs
Review the Tomcat application logs on the service provider host for errors:
cat <tomcat-install-dir>/logs/catalina.out | grep -i "error\|exception"Resolve all errors until the service appears in the service list in the EDAS console. Common issues include failed bean initialization, missing configuration files, and dependency injection errors.
Step 4: Check HSF logs
If the service still fails, inspect the High-speed Service Framework (HSF) logs for error codes:
cat /home/admin/logs/hsf/hsf.logLook up any error codes in the HSF error codes reference to find the specific cause and solution.