2016-08-19 112 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 
相关问题