WebService in Nucleus

xiaoxiao2021-03-06  41

First, development package

Existing documentation:

"Simple AXIS"

Exclusive development package:

Server development kit Using Apache Axis client development kits Using Systinet WASP 5.0

The server and client uses different development packages:

SYSTINET's server development package must be used with Systinet Server, and we have chosen JBoss, so the server selects other development kits SYSTINET's server development package and client development pack default occupation of the same SOCKET port, there is no In the same application, use the server and client that must be SYSTINET, so the server selects other development kits, and further learning for Systinet may solve this problem AXIS client development package uses "enum" to do ordinary identity. , Cannot be compiled in JDK5, and we must use JDK5, so the client selects other development packages

The server and client uses different development packages:

It is unable to provide support for complex data types such as ArrayList, Hashmap, etc., because different development packages have different unnecessary class libraries and learning costs for non-standard WebService types, SYSTINET WASP 5.0 is really a very large Things, it is currently not efficient to use it, discovering the current use of usage in the test.

solution:

The client also uses AXIS, and the generated Stub is compiled as a JAR package under 1.4, and then it is very limited to the SYSTINET in 1.5. The above may be incorrect, and the above problems will be solved after further study. Or SYSTINET's respective upgrades

Second, WebService in Nucleus

achieve

It can be seen from "Simple Axis" that publishing WebService requires some configuration descriptors, currently in M2 / Engine / ServiceInterface / Nucleus / Web-INF / NuCleus / WEB-INF /

Increase or modify WebService, just modify server-config.wsdd; there is usually several ways to modify:

If you are more familiar with AXIS, you can manually modify if there is a suitable Eclipse plugin, you can use the Plug-in wizard to modify if there is JBuilder, you can use JBuilder wizard modification

It is currently using JBuilder handmade modification:

You can create some unrelated works, familiar with JBuilder's support for Axis and WebService, using JBuilder to publish new WebService from Nuclefor, to generate new server-config.wsdd from new server-config.wsdd WEBSERVICE corresponding description, paste into M2 / Engine / ServiceInterface / Nucleus / Web-INF / Server-Config.wsdd

design

In order not to rely on WebService, Nucleus defines the interface of the underlying service in the form of an interface:

Package Nucleus.bizCommon.Servicegateway:

Public Interface AgentService

Public Interface EngineManager

Public Interface MonitorWebService

Public Interface OrganizationWebService

Public Interface PDMwebService

Public Interface ReportWebService

Public Interface TasklistWebService

For distributed and embedded between the overall switching convenient, Nucleus defines the Service Gateway Interface: package nucleus.servicegateway: public interface WebServiceProvider {PDMWebService getPDMWebService (); OrganizationWebService getOrganizationWebService (); EngineManager getEngineWebService (); MonitorWebService getMonitorWebService () Tasklistwebservice gettasklistwebservice (); ReportWebService getReportWebService (); agentservice getagentservice ();}

At the same time, a distributed service gateway is provided separately.

Public Final Class Nucleus.ServiceGateway.externalService Implements WebServiceProvider

And embedded service gateway

Public Final Class Nucleus.ServiceGateway.InternalService Implements WebServiceProvider

Then switchable by configuration

>

There is an inconvenient expansion here. There is no corresponding intention of the interface naming (such as "web" in the interface name), which seems to be included in the message system.

Bale

Currently using CruiseControl and Ant, the script file is located in M2 / Engine / *. XML

Third, summary

In summary, the new WebService step is:

Definition of a service interface: public interface nucleus.bizcommon.servicegateway.NewService; implement this interface: public class NewService implements nucleus.bizcommon.servicegateway.NewService; a method of increasing the WebServiceProvider: NewService getNewService (); ExternalService and to achieve this in the InternalService Methods use JBuilder to release newService to modify server-config.wsdd package

转载请注明原文地址:https://www.9cbs.com/read-56767.html

New Post(0)