2016-08-19 116 views
0

我有一種情況RESTful Web服務,如何通過互聯網從其他計算機訪問

  1. 休息的Web應用程序(使用Spring框架)的窗口在本地主機上運行(Web服務器上的Apache Tomcat 8 10),PC連接到互聯網
  2. 另一個人距離我2oo公里,想用我的郵遞員或Android應用程序打我的網絡服務。

這是我的tomcat servel.xml -

<?xml version='1.0' encoding='utf-8'?> 
    <Server port="8005" shutdown="SHUTDOWN"> 
    <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> 
<!-- Security listener. Documentation at /docs/config/listeners.html 
<Listener className="org.apache.catalina.security.SecurityListener" /> 
--> 
<!--APR library loader. Documentation at /docs/apr.html --> 
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> 
<!-- Prevent memory leaks due to use of particular java/javax APIs--> 
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> 
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> 
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> 

<!-- Global JNDI resources 
    Documentation at /docs/jndi-resources-howto.html 
--> 
<GlobalNamingResources> 
<!-- Editable user database that can also be used by 
    UserDatabaseRealm to authenticate users 
--> 
<Resource name="UserDatabase" auth="Container" 
      type="org.apache.catalina.UserDatabase" 
      description="User database that can be updated and saved" 
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory" 
      pathname="conf/tomcat-users.xml" /> 
</GlobalNamingResources> 

<!-- A "Service" is a collection of one or more "Connectors" that share 
    a single "Container" Note: A "Service" is not itself a "Container", 
    so you may not define subcomponents such as "Valves" at this level. 
    Documentation at /docs/config/service.html 
--> 
<Service name="Catalina"> 

<!--The connectors can use a shared executor, you can define one or more named thread pools--> 
<!-- 
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
    maxThreads="150" minSpareThreads="4"/> 
--> 


<!-- A "Connector" represents an endpoint by which requests are received 
    and responses are returned. Documentation at : 
    Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) 
    Java AJP Connector: /docs/config/ajp.html 
    APR (HTTP/AJP) Connector: /docs/apr.html 
    Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 
--> 
<Connector port="8080" protocol="HTTP/1.1" 
      connectionTimeout="20000" 
      redirectPort="8443" /> 
<!-- A "Connector" using the shared thread pool--> 
<!-- 
<Connector executor="tomcatThreadPool" 
      port="8080" protocol="HTTP/1.1" 
      connectionTimeout="20000" 
      redirectPort="8443" /> 
--> 
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 
    This connector uses the NIO implementation that requires the JSSE 
    style configuration. When using the APR/native implementation, the 
    OpenSSL style configuration is required as described in the APR/native 
    documentation --> 
<!-- 
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" 
      maxThreads="150" SSLEnabled="true" scheme="https" secure="true" 
      clientAuth="false" sslProtocol="TLS" /> 
--> 

<!-- Define an AJP 1.3 Connector on port 8009 --> 
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 


<!-- An Engine represents the entry point (within Catalina) that processes 
    every request. The Engine implementation for Tomcat stand alone 
    analyzes the HTTP headers included with the request, and passes them 
    on to the appropriate Host (virtual host). 
    Documentation at /docs/config/engine.html --> 

<!-- You should set jvmRoute to support load-balancing via AJP ie : 
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> 
--> 
<Engine name="Catalina" defaultHost="localhost"> 

    <!--For clustering, please take a look at documentation at: 
     /docs/cluster-howto.html (simple how to) 
     /docs/config/cluster.html (reference documentation) --> 
    <!-- 
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 
    --> 

    <!-- Use the LockOutRealm to prevent attempts to guess user passwords 
     via a brute-force attack --> 
    <Realm className="org.apache.catalina.realm.LockOutRealm"> 
    <!-- This Realm uses the UserDatabase configured in the global JNDI 
     resources under the key "UserDatabase". Any edits 
     that are performed against this UserDatabase are immediately 
     available for use by the Realm. --> 
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
      resourceName="UserDatabase"/> 
    </Realm> 

    <Host name="localhost" appBase="webapps" 
     unpackWARs="true" autoDeploy="true"> 

    <!-- SingleSignOn valve, share authentication between web applications 
     Documentation at: /docs/config/valve.html --> 
    <!-- 
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> 
    --> 

    <!-- Access log processes all example. 
     Documentation at: /docs/config/valve.html 
     Note: The pattern used is equivalent to using pattern="common" --> 
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 
      prefix="localhost_access_log" suffix=".txt" 
      pattern="%h %l %u %t &quot;%r&quot; %s %b" /> 

    </Host> 
</Engine> 

如何實現這一目標?

+0

在這種情況下,(你的ISP的公網IP地址)必須配置你的公網IP有它的TCP端口(默認爲端口80用於HTTP)開放接收所有傳入流量從任何地方(地址綁定到0.0.0.0)。 – sa77

+0

如何更改端口綁定 –

+0

我不確定你是如何啓動你的tomcat服務器的。如果你用'server.xml'配置tomcat,那麼你應該將連接器端口IP地址'127.0.0.1'改爲' 0.0.0.0'。 – sa77

回答

0
Open ports to your router 

Open Port

Then search on google "What is my public IP" 
If your public ip is 127.0.0.1 
tomcat port is 8080 and opened port is 8080 and war name is abc 
then 127.0.0.1:8080/abc is accessible on internet 
相關問題