Red de conocimiento informático - Material del sitio web - Cómo utilizar el servicio web generado por Netbeans

Cómo utilizar el servicio web generado por Netbeans

Es muy conveniente desarrollar servicios web con netbeans. Por supuesto, es mejor tener un entorno jdk6, pero hay un problema que a menudo nos preocupa, es decir, cuando el código completado en el entorno de prueba o desarrollo se va a implementar en otras máquinas, estaremos muy indefensos y tendremos para cambiar los objetivos en el código uno por uno. Algunas personas dicen que se usan archivos de configuración. Jaja, puede ser más conveniente escribir a mano en axis o xfire, pero en netbeans, estos fragmentos generados automáticamente son más problemáticos de cambiar. aunque arrastrar y soltar es muy conveniente durante el desarrollo. ¡Solía ​​consolarme pensando que todo tiene dos caras! Recientemente leí un artículo de Arun Gupta, el jefe de Sun Webservice, y descubrí que en realidad es muy fácil cambiar esto, pero todavía hay problemas, que se detallarán a continuación.

Por ejemplo:

Según Arun, a menudo usamos el código generado por wsdl para llamar al servicio web, y la versión de jax-ws es 2.1.

Hola puerto = nuevo HelloService(). gethello port();

string result = port. say hello("Duke!");

Por supuesto, las descripciones anteriores son todos servicios web publicados correspondientes a direcciones IP específicas. Si este mismo servicio termina implementándose en otras máquinas, no se utilizará. Entonces, podemos agregar otra línea de código entre las dos líneas anteriores:

((javax.xml.ws.BindingProvider)port). getRequestContext(). put(javax . XML . ws . vinculante proveedor . endpoint _ ADDRESS _ PROPERTY, " NEW _ ADDRESS _ HERE ");

En el uso real, simplemente reemplace NEW_ADDRESS_HERE con la dirección del punto final correspondiente.

Creo que Aaron cometió el mismo error que yo cometí antes en el examen. Después de cambiar el punto final, si sigue el método anterior, es factible sin apagar el servidor de aplicaciones original, pero esto rara vez sucede. Al ejecutar "hello port = new hello service(). gethello port();" En este código, se obtendrá primero el archivo wsdl original. Si se cierra el servidor de aplicaciones original, se informará una excepción ((javax. Puerto XML .ws . getRequestContext(). put(javax. XML. ws. proveedor de enlace. endpoint_address_property, "new_address_here"); este código ya no se puede ejecutar.

Después de explorar un poco, encontré un buen método, el siguiente.